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的版本,这些是编译器的事,所以我们可以尽管放心去做。

你可能感兴趣的:(对象)