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

​ 字面量语法更精简、整洁,没有多余的语法成分。

// 创建字符串,使用
NSString *str = @"Hello world";
// 而非: NSString *str = [[NSString alloc] initWithString:@"Hello world"];

// 创建数值,使用
NSNumber *num = @1;
// 而非: NSNumber *num = [NSNumber numberWithInt:1];

// 创建数组,使用
NSMutableArray *arr = [@[@"OC", @"Swift"] mutableCopy];
// 而非: NSArray *arr = [NSArray arrayWithObjects:@"OC", @"Swift", nil];
// 从数组里取值,使用
NSString *language = arr[0]; // 下标语法
// 而非: NSString *language = [arr objectAtIndex:1];
// 修改数组,使用
arr[0] = @"Objective-C";
// 而非: [arr replaceObjectAtIndex:0 withObject:@"Objective-C"];

// 创建字典,使用
NSMutableDictionary *dic = [@{@"key1": @"value1", @"key2": @"value2"} mutableCopy];
// 而非: NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"value1": @"key1", @"value2": @"key2", nil];
// 从字典里取值,使用
NSString *value1 = dic[@"key1"];
// 而非: NSString *value1 = [dic objectForKey:@"key1"];
// 修改字典,使用
dic[@"key1"] = @"OC";
// 而非: [dic setObject:@"OC" forKey:@"key1"];

​ 不过使用字面量语法创建数组时要注意,若数组元素对象中有nil,则会抛出异常,因为字面量语法实际上只是一种“语法糖”(syntactic sugar),其效果等于是先创建了一个数组,然后把方括号内的所有对象都加到这个数组中。Nr

要点:

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

  • 应该通过取下标操作来访问数组下标或字典中的键所对应的元素

  • 用字面量语法创建数组或字典时,若值中有nil,则会抛出异常。因此,务必确保值里不喊nil

Last updated

Was this helpful?