美文网首页
iOS-字面量语法

iOS-字面量语法

作者: 博尔茨杰 | 来源:发表于2017-11-03 16:45 被阅读117次

    通过字面量语法我们可以缩减源代码长度,使其更为易读。

    1.字面数值

    实例:
    NSNumber *someNumber = [NSNumber numberWithInt:1];
    使用字面量语法更为精简:

    NSNumber  *intNumber = @1;
    NSNumber  *floatNumber = @2.5f;
    NSNumber  *doubleNumber = @1;
    NSNumber  *boolNumber = @YES;
    NSNumber  *charNumber = @'a';
    

    2.字面量数组

    实例:
    NSArray *animals = [NSArray arrayWithObjects:@"cat",@"dog",@"mouse",@"badger",nil];
    使用字面量语法来创建是:
    NSArray *animals = @[@"cat",@"dog",@"mouse",@"badger"];
    数组中取下表的操作:
    NSString *dog = [animals objectAtIndex:1];
    若使用字面量语法,则是
    NSString *dog = animals[1];
    下面是可能遇到的问题。下面这段代码分别以两种语法创建数组:

    id object1 = /*...*/;
    id object2 = /*...*/;
    id object3 = /*...*/;
    NSArray *arrayA = [NSArray arrayWithObjects:object1, object2, object3,nil];
    NSArray  *arrayB = @[object1, object2, object3];
    

    如果object2是nil,arrayA会创建出来对象然后再报错,arrayB就直接报错了,所以使用字面量语言更为安全。

    3.字面量字典

    以下原来的方法就不写了,直接写字面量的语法。
    NSDictionary *personData = @{@"firsName":@"ajie",@"age",@28}
    在字典中使用NSNumber直接前面加@字符即可。
    访问值:
    NSString *firsName = personData [@"firsName"];

    4.可变数组与字典

    可变数组和字典内容的修改

    mutableArray[1] = @"dog";
    mutableDictionary[@"firstName"] = @"ajie";
    

    局限性

    字面量语法创建的对象都是不可变的。若要可变的对象,则需复制一份:
    NSMutableArray * mutable = [@[@1, @2, @3] mutableCopy];

    这个知识点参考了《Effective Objective-C 2.0》

    相关文章

      网友评论

          本文标题:iOS-字面量语法

          本文链接:https://www.haomeiwen.com/subject/hybtmxtx.html