obj-c部分对象快捷赋值和取值

NSNumber:

NSNumber *number = @1234

 

旧的方式:

NSArray *physicsValues = [NSArrayarrayWithObjects:

                  [NSNumbernumberWithDouble:6.02214129e23],

                  [NSNumbernumberWithDouble:1.3806503e-23],

                  [NSNumbernumberWithDouble:6.626068e-34],

                  [NSNumbernumberWithDouble:1.097373e-7],

                  nil];

 

我们可以用以下方式来代替:

NSArray *numberArray = [NSArray arrayWithObjects: 

                                @6.02129e23        

                                @1.380, 

                                @6.62,

                                @1.097373e-7, 

                                nil]; 

 

不过上面的代码可以更加简单:
 
 1  NSArray *numberArray = @[@6.02129e23,  
 2                           @1.380, 
 3                           @6.62,
 4                           @1.097373e-7]; 
 5 
 6 
 7  NSArray *stringArray = @[ @"good",
 8                            @"see"  
 9                            @"xCode", 
10                            @"what"];

 


当然字典也有类似的方法,数组是用@[], 字典则是用@{}

来看个老的方法:

1 nameDict = [NSDictionary dictionaryWithObjectsAndKeys:
2 
3                   physic, @"Physic",
4 
5                   newStrings, @"string",
6 
7                   number, @"Numbers",
8                   nil]; 

新的方法:

1 nameDict = @{
2                 @"Physic" : physic,
3 
4                 @"string" : newStrings,
5 
6                 @"Numbers" : number
7 
8             };

 

对于数组,我们想取个值,一般是用[array objectAtindex:0];

不过现在有更方便快捷的办法了,就是直接使用下标array[0],效果和前面那句是一样的。

替换数据一样可以用下标

 1 //旧的:
 2 
 3 [valuesArray replaceObjectAtIndex:controller.indexInSection withObject:controller.value];
 4 
 5 [valuesDictionary setObject:valuesArray forKey:controller.sectionName]; 
 6 
 7 //新的:
 8 
 9 valuesArray[controller.indexInSection] = controller.value; 
10 
11 valuesDictionary[controller.sectionName] = valuesArray; 

 

使用以上那些特性,我们不需要关心ios的版本,这些是编译器的事,所以我们可以尽管放心去做。

posted @ 2013-07-25 15:23  星烨痕  阅读(345)  评论(0编辑  收藏  举报