一、使用向前声明(@class)的好处

1、有效减少编译器编译的时间;

2、有效避免循环引用;

二、字面量语法的好处

1、字面常量

精简、可用于所有数据类型,如:

NSNumber *intNumber = @1;

NSNumber *floatNumber = @2.5f;

NSNumber *doubleNumber = @3.14159;

NSNumber *boolNumber = @YES;

NSNumber *charNumber = @'a';

2、字面量数组

NSArray *animals = @[@"dog",@"cat",@"mouse"];

NSString *dog = @[0];

需要注意的是,当用字面量语法创建的数组中的某一个对象为nil时,则会抛出异常,如:

id object1 = /*............*/;

id object2 = /*............*/;   (为nil)

id object3 = /*............*/;

NSArray *arrayA = [NSArray arrayWithObjects:object1, object2, object3, nil];

NSArray *arrayB = @[object1, object2, object3];

arrayA中只含有一个元素,因为arrayWithObjects:会依次处理各个参数,知道碰到nil为止,由于object2为nil,所以该方法会提前结束;

arrayB会抛出异常,便于代码审查;

3、字面量字典

NSDictionary *personData = [NSDictionary dictionaryWithObjectsAndKeys:@"mark", @"name", [NSNumer numberWithInt:28], @"age", nil];<对象><键>

NSDictionary *personData = @{@"name":@"mark", @"age":@28};

如果遇到对象为nil,也会抛出异常;

4、可变数组与字典

[mutableArray replaceObjectAtIndex:1 withObjrct:@"dog"];

[mutableDictionary setObject:@"mark" forKey:@"name"];

对比:

mutableArray[1] = @"dog";

mutableDictionary[@"name"] = @"mark";

5、要点:

*应该使用字面量语法来创建字符串、字典、数组、数值,这样更加简明扼要;

*应该通过取下标操作访问数组下标或字典的键所对应的元素;

*用字面量语法创建字典或者数组时,若值中有nil,则会抛出异常。因此务必保证值中不含nil;

编写高质量iOS代码的52个有效方法1-1的更多相关文章

  1. 编写高质量iOS代码的52个有效方法2-1

    一.变量的定义位置(用{}声明示例变量或者用@property属性声明实例变量) 1.用{}声明示例变量: 此方法生命的实例变量,编译器在编译时,会自动计算其偏移量(表示该变量距离存放对象的内存区域的 ...

  2. 编写高质量JavaScript代码的68个有效方法

    简介: <Effective JavaScript:编写高质量JavaScript代码的68个有效方法>共分为7章,分别涵盖JavaScript的不同主题.第1章主要讲述最基本的主题,如版 ...

  3. Effective Python之编写高质量Python代码的59个有效方法

                                                         这个周末断断续续的阅读完了<Effective Python之编写高质量Python代码 ...

  4. 编写高质量JS代码的68个有效方法(八)

    [20141227]编写高质量JS代码的68个有效方法(八) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  5. 编写高质量JS代码的68个有效方法(七)

    [20141220]编写高质量JS代码的68个有效方法(七) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  6. 编写高质量JS代码的68个有效方法(六)

    [20141213]编写高质量JS代码的68个有效方法(六) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  7. 编写高质量JS代码的68个有效方法(四)

    [20141129]编写高质量JS代码的68个有效方法(四) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  8. 编写高质量JS代码的68个有效方法(三)

    [20141030]编写高质量JS代码的68个有效方法(三) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  9. 编写高质量JS代码的68个有效方法(二)

    [20141011]编写高质量JS代码的68个有效方法(二) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

随机推荐

  1. chrome ipc 网摘

    http://my.oschina.net/myspaceNUAA/blog/81632?p=1 http://lihuan623.blog.163.com/blog/static/138595845 ...

  2. Haskell Seq函数和严格计算

    参考链接http://stackoverflow.com/questions/11046590/the-seq-function-and-strictness https://wiki.haskell ...

  3. Tomcat启动极慢问题

    启动后,catalina.out日志中会有如下打印: INFO: Creation of SecureRandom instance ,] milliseconds 具体原因,有兴趣的可以自己百度一下 ...

  4. linux kernel 编译

    lin

  5. LeetCode 476. Number Complement

    Given a positive integer, output its complement number. The complement strategy is to flip the bits ...

  6. android 音频播放总结 soundlPool,MediaPlay

    soundlPool 用于小音频的播放多个同时播放. 使用步骤: 步骤一: 首先下载音频文件可以将其放入assets文件夹下或者res下的raw文件夹下,区别在于assets下可以再新建文件夹二raw ...

  7. uinty3d使用ugui封装一个分页控件

    我们在显示数据时有的数据比较多,手机内存有限,我们不可能分配很多的控件来显示这些数据,分页是一个不错的选择.比如玩家交易行.我们现在封装一个自己简单的分页控件来显示玩家交易行. 分页控件的原理其实很简 ...

  8. sql数据导出导入格式化

    SHELL脚本导入导出数据时,按逗号分隔,引号包含字段,null值'' gccli -uroot -h$ip -e"rmt:${sqlStr} into outfile '${name}${ ...

  9. mac相关

    1 mac的动态链接库 mac基于bsd,所以它使用的是bsd风格的动态链接库,即以.dylib为后缀的动态链接库. 这个和windows的.dll和linux的.so相区分.

  10. oracle中关于Oracle Database 11g Express Edition 打不开的问题

    报的错误是http://127.0.0.1:...什么的找不到该文件 如果是127.0.0.1没问题,而且oracle中5个服务没问题,而且oracle可以启动.. 最后的问题是8080端口冲突,如果 ...