字符串字面量
NSString *someString = @"Effective Objective-C 2.0";
字面数值
NSNumber *intNumber = @1;
NSNumber *floatNumber = @2.5f;
NSNumber *doubleNumber = @3.1415926;
NSNumber *boolNumber = @YES;
NSNumber *charNumber = @'a';
int x = 5;
float y = 3.14;
NSNumber *expressionNumber = @(x * y);
字面量数组
NSArray *animals = @[@"cat",@"dog",@"mouse",@"panda",];
NSString *panda = animals[3];
说明:
字面量语法实际是一种“语法糖”,其效果等于先创建一个数组,然后把方括号内的所有对象都加到这个数组中。
字面量字典
NSDictionary *personData = @{@"firstName":@"Tom",@"lastName":@"Galloway",@"age":@18};
NSString *lastName = personData[@"lastName"];
可变数组与字典
// 通过下标修改其中的元素值
mutableArray[1] = @"monkey";
mutableDic[@"lastName"] = @"SYL";
局限性
除字符串以外,所创建出来的对象必须属于Foundation框架才行。
如果自定义了这些类的子类,则无法用字面量语法创建其对象。
创建自定义子类的实例,必须采用“非字面量语法”。
使用字面量语法创建的字符串、数组、字典对象都是不可变的,要可变版本对象,需要复制一份:
NSMutableArray *mutable = @[@1, @2, @3].mutableCopy;
说明:
上面会多调用一个方法,而且还要再创建一个对象,但字面量语法的好处还是多于缺点。
网友评论