Prefer Literal Syntax over the Equivalent methods

多使用字面量语法,少用和它等价的方法。从 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

你可能感兴趣的:(字面量)