Objective-C(一下简称OC) 的语法比较繁杂,但是从OC 1.0 版本起,有一种非常简便的方式能创建NSString 对象,那就是字面量,也就是本篇文章的核心内容。其语法如下:
字面字符串
NSString * string = @"i'm a string";
如果不用这种方法的话,就要用常见得alloc及init 方法
字面数值
OC提供的用于处理数值(整数、浮点数、bool值)的类是NSNumber,该类提供的主要类方法如下
如果不是用字面量,创建方式如下:
NSNumber * number = [NSNumber numberWithInt:2];
字面量方式创建:
NSNumber * intNumber = @1;
NSNumber * floatNumber = @1.2f;
NSNumber * doubleNunber = @3.14159;
NSNumber * boolNumber = @YES;
NSNumber * charNumber = @'a';
字面量数组
数组是常用的数据结构,使用方式如下:
//使用系统方法创建
NSArray * array = [NSArray arrayWithObjects:@"a",@"b",@"c",@"d", nil];
//取值
NSString * str = [array objectAtIndex:0];
//使用字面量创建
NSArray * anotherArray = @[@"a",@"b",@"c",@"d"];
//取值
NSString * anotherStr = anotherArray[0];
使用字面量创建数组更安全,例如对上述数组稍作修改,如下:
//使用系统方法创建
NSArray * array = [NSArray arrayWithObjects:@"a",@"b",nil,@"d", nil];
//不报错:可以插入nil,nil作为结束标志,此时@"d"不能插入到数组中;
//取值
NSString * str = [array objectAtIndex:0];
//使用字面量创建
NSArray * anotherArray = @[@"a",@"b",nil,@"d"];
//报错因为字面量数组中不能插入nil;
//取值
NSString * anotherStr = anotherArray[0];
使用字面量语法更安全,抛出异常使应用程序终止执行,比创建好数组以后发现元素少了要好。
字面量字典
OC中也经常用到字典,OC创建字典的方式非常令人不解,写法也很难懂,OC的创建方式如下:
//系统常用的创建方式,这种方式 值在前,键在后,可读性不强
NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"dog",@"animal",@"boy",@"kid",@"bread",@"food", nil];
//取dog
NSString * dog = [dic objectForKey:@"animal"];
//使用字面量语法创建,键在前,值在后,简洁易懂
NSDictionary * anotherDic = @{@"animal":@"dog",@"kid":@"boy",@"food":@"bread"};
//取值
NSString * anotherDog = anotherDic[@"animal"];
使用字面量的优点:
1、用字面量创建的对象,与传统的创建方式相比,更加简明。
2、可以通过去小标操作访问数组或字典中得键所对应的元素。
3、用字面量创建数组,若元素为nil,会提示错误。
缺点:
字面量除了字符串以外,所创建出来的对象必须属于Foundation框架才行,如果是自定义的这些类的子类,则无法使用字面量语法创建其对象。