《Effective Objective-C 2.0 》 阅读笔记 item3

第3条:多用字面量语法,少用与之等价的方法

1. 字面数值

使用字面量能令代码更为简洁:

NSNumber *someNumber = @1;

 

*** 字面量语法的好处! ***

  • 令代码更为简洁。
  • 能够以NSNumber实例表示的所有数据类型(int、float、double、Bool和char)都可以使用字面量语法。
  • 字面量语法同样适用于算法表达式。

2. 字面量数组

*** 使用字面量数组的优势! ***

  • 写法简单,而且还利于操作数组。
  • 用字面量语法创建数组要注意,若数组元素对象中有nil,则会抛出异常。
  • 使用字面量语法更为安全(抛出异常令应用程序终止执行,通过异常可以更快地发现错误)。

3. 字面量字典

*** 使用字面量字典的优势! ***

  • 写法更简明,而且键出现在对象之前,理解起来较顺畅。
  • 与数组一样,用字面量语法创建字典时也有个问题:一旦有值为nil,便会抛出异常。
  • 字典也可以像数组的取下标操作那样访问某个键所对应的元素。

4. 可变数组与字典

如果数组与字典对象是可变的,那么久能通过下标修改其中的元素值。

5. 局限性

  • 除了NSString类之外,所创建出来的对象必须属于Foundation框架中的类才行。如果自定义了这些类的子类,则无法用字面量语法创建其对象。要想创建自定义子类的实例,必须采用“非字面量语法”。
    例如,NSArray、NSDictionary、NSNumber都是业已定型的“子族”,因此很少有人会从其中自定义子类;创建字符串时可以使用NSString自定义的子类,然而必须要修改编译器的选项才行。
  • 使用字面量语法创建出来的字符串、数组、字典对象都是不可变。若想要可变版本的对象,则需复制一份(需要调用mutableCopy方法,再创建出一个新的对象)。

要点

  • 应该使用字面量语法来创建字符串、数值、数组、字典。与创建此类对象的常规方法相比,这么做更加简明扼要。
  • 应该通过取下标操作来访问数组下标或字典中的键所对应的元素。
  • 用字面量语法创建数组或字典时,若值中有nil,则会抛出异常。因此,务必确保值里不含nil。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉亭下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值