ios 高效开发-----字面量

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框架才行,如果是自定义的这些类的子类,则无法使用字面量语法创建其对象。

  

原文地址:https://www.cnblogs.com/tianlin106/p/4514276.html