3 - 多用字面量语法,少用与之等价的方法

字面量语法涉及到的类型有:express

NSString,NSNumber,NSArray,NSDictionary数组

如今先无论什么叫字面量语法,先来看一下怎么生成一个NSString类型对象并赋值到变量上:对象

NSString *someString = @"Jk_Chan";内存

能够看出这里的语法,直接使用@""即可以生成一个NSString对象,而不须要调用new或者alloc与init方法。字符串

一样的,NSNumber,NSArray,NSDictionary也可使用字面量语法来生成对象,简简单单。it

NSNumber *intNumber = @1;io

NSNumber *intNumber = @1.5;table

NSNumber *boolNumber = @YES;ast

NSNumber *charNumber = @'a';变量

NSNumber *expressionNumber = @(2 * 8);

 

NSArray *animals = @[@"cat", @"dog"];//不须要nil结尾

取数组元素的时候更方便:

NSString *dog = animals[1];

须要注意一点就是,使用字面量语法的时候放入的元素不能为nil,不然程序会崩溃,因此放入的时候须要确保放入的对象会不会是nil。

及时不使用字面量语法去初始化一个数组对象的时候,若是所放入的元素并非最后一个是nil,也就是中途的元素便出现nil,那么nil以后的那些元素不会被存入到该数组对象中。

 

 

NSDictionary *personData = @{@"firstName" : @"Matt", @"lastName" : @"Galloway", @"age" : @28};

取字典值:

NSString *lastName = personData[@"lastName"];

这里也须要说起一下,不管是否使用字面量语法,往字典内存放一个为nil的值也会使程序奔溃。

 

可变版本数组与字典操做元素:

mutableArray[1] = @"dog";

mutableDictionary[@"lastName"] = @"Galloway";

 

这里还有一点值得注意的就是:

使用字面量语法建立出来的字符串,数组,字典对象都是不可变的,若想生成可变版本,则须要复制一份,而且是应该使用mutableCopy:

NSMutableArray *mutable = [@[@1, @2, @3] mutableCopy];

 

最后来抄一下书本的要点:

应该使用字面量语法来建立字符串,数值,数组,字典。与建立此类对象的常规方法相比,这么作更加简明扼要。

应该经过去下标操做来访问数组下标或字典中的键所对应的元素。

用字面量语法建立数组或字典时,若值中有nil,则会抛出异常。所以,务必确保值里不含nil。

相关文章
相关标签/搜索