1亦歉、使用字面量方法來創(chuàng)建字符串恤浪、數值、數組肴楷、字典水由,與創(chuàng)建此類對象的常規(guī)方法相比,這么做更加簡明扼要
NSString *someString = [NSString stringWithFormat:@"%@", string];
NSString *someString = @"string";
NSSNumber *someNumber = [NSNumber numberWithInt:1];
NSSNumber *someNumber = @1;
NSArray *animals = [NSArray arrayWithObjects:@"cat", @"dot", nil];
NSArray *animals = @[@"cat", @"dot"];
NSDictionary *personData = [NSDictionary dictionaryWithObjectsAndKeys:@"Zhou", @"firstName", @"Hua", @"lastName", [NSNumber numberWithInt:28], @"age", nil];
NSDictionary *personData = @{ @"firstName": @"Zhou", @"lastName": @"Hua", @"age": @28};
2赛蔫、應該通過取下標操作來訪問數組下標或字典中的鍵說對應的元素
NSString *dog = animals[1];
3砂客、用字面量語法創(chuàng)建數組或字典時,若之中有nil濒募,這會拋出異常鞭盟。因此務必確保值里不含nil
使用字面量語法創(chuàng)建數組時要注意,若數組元素對象中有nil瑰剃,則會拋出異常齿诉,因為字面量語法實際上只是一種“語法糖”,其效果等于是先創(chuàng)建了一個數組晌姚,然后把方括號內的所有對象都加到這個數組中粤剧。
有如下代碼
id object1;
id object2;
id object3;
NSArray *arrayA = [NSArray arrayWithObjects:object1, objec2, object3, nil];
NSArray *arrayB = @[object1, objec2, object3];
如果object1和object3都指向了有效的對象,object2是nil,那么會出現什么情況呢挥唠?按字面量語法創(chuàng)建抵恋,數組B會拋出異常,arrayA雖然能創(chuàng)建出來宝磨,但是其中卻支行object1一個對象弧关,原因在于“arrayWithObjects:”方法會依次處理各個參數,直到發(fā)現nil為止唤锉,由于object2是nil世囊,所以該方法會提前結束。
字典也是同樣的窿祥,使用“dictionaryWithObjectsAndKeys:”方法就會在首個nil之前停下
如果是可變數組的創(chuàng)建可用如下方法
NSMutableArray *mutable = [@[@1, @2, @3] mutableCopy];