iOS-字面量语法

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

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-字面量语法)