多使用字面量语法,少用和它等价的方法。从 Objective-C 1.0 开始,使用“字符串字面量”来创建 NSString 对象会更加简单。
NSString *someString = @"Effective Objective-C 2.0"; // 不使用字面量封值的方式 和 使用字面量创建实例的方式 NSNumber *someNumber = [NSNumber numberWithInt:1]; // 使用了字面量 NSNumber *someNumber = @1; NSNumber *floatNumber = @1.77f; NSNumber *boolNumber = @YES; NSNumber *charNumber = @'z'; // 使用字面量来表示数值的好处在于,让 NSNumber 对象变得更加简洁,省去了多余的语法成分。 // 数组对象用两种创建方式 NSArray *animals = [NSArray arrayWithObjects:@"cat", @"dog", @"tiger", nil]; NSString *dog = [animals objectAtIndex: 1]; NSArray *animals = @[@"cat", @"dog", @"tiger"]; NSString *dog = animals[1]; // 字面量创建的数组对象在取值的时候更加的便捷 // 字典对象的两种创建方式 NSDictionary *personData = [NSDictionary dictionaryWithObjectsAndKeys: @"Herbert", @"firstName", @"Hu", @"lastName", nil]; NSString *last = [personData objectForKey:@"lastName"]; // 用字面量语法创建字典时,一旦有值为 nil , 会抛出异常。 NSDictionary *personData = @{@"firstName": @"Herbert", @"lastName": @"Hu"}; NSString *lastName = personData[@"lastName"];
使用字面量创建出来的字符串、数组、字典对象都是不可变的。如果想要可变版本,则需复制一份:
// 再创建一个对象 NSMutableArray *mutable = [ @[ @1, @2, @3] mutableCopy];
总结
使用字面量来创建字符串、数值、数组、字典对 象。和创建这些类对象的常规方法相比,使用字面量更加简明。
通过取下表操作来访问数组下表或字典中的键所对应的元素。
用字面量语法创建的数组或字典,元素中如果出现 nil ,则会抛出异常。
Jan 26, 2015