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。

相關文章
相關標籤/搜索