编写高质量代码-OC 第2章 数据类型、集合和控制语句

八、C语言与Objective—C语言的关系条件是充分而非必要条件
九、高度警戒空指针和野指针的袭击数组

  • 一、空指针(NULL指针),是指没有存储任何内存地址的指针。野指针,是指向“垃圾内存”(不可用内存)的指针
  • 二、利用野指针发消息是很危险的。
  • 三、利用空指针发消息是没有任何问题的。

十、在64位环境下尽量利用标记指针安全

  • 一、利用标记(Tagged)指针,能够在指针地址中保存或附加更多地信息。
  • 二、利用标记(Tagged)指针处理NSNumber,直接能够把实际的值保存到指针中,而无须再去访问堆中的数据,可提升内存访问速度和总体运算速度。
  • 三、在32位和64位的环境下,isa指针会产生不一样的变化。

十一、谨记兼容32位和64位环境下代码编写事项数据结构

  • 一、不要将长整型数据赋予整型
  • 二、利用用NSInteger来处理32位和64位之间的转换
  • 三、建立数据结构要注意固定大小和对其

十二、清楚常量字符串和通常字符串的区别优化

  • 一、因为编译器的优化,相同内容的常量字符串的地址值是彻底相同的
  • 二、若是使用常量字符串来初始化一个字符串,那么这个字符串也将是相同的常量
  • 三、对常量字符串永远不要release

1三、在访问集合时要优先考虑使用快速枚举
1四、有序对象适宜存于数组,而无序对象适宜存于集指针

  • 一、数组(NSArray)可维持持续性,故适宜存储有序的对象,但每一项必须是Objective-C对象。集(Sets)不维持秩序,故适宜存储无序对象。
  • 二、同一数组(NSArray)能够保存不一样的对象,但不能存储float、int、double等基本类型和nil,不然存储基本类型都会被设置为0,不能存储nil是由于数组必须用nil来结尾。
  • 三、快速枚举是访问数组(NSArray)中的对象的一种比较快的方法。
  • 四、使用NSArray和NSDictionary类能够直接将其内容写入磁盘进行持久化。

1五、存在公共键时,字典是在对象之间传递信息的绝佳方式
1六、明智而审慎地使用BOOL类型对象

  • 一、整型转为BOOL形,使用三元(Ternery)操做符,以保证返回YES或NO值
  • 二、整形转换为BOOL型的时候要避免直接和YES作对比
  • 三、BOOL值进行逻辑运算(&&, ||, !)不但有效,并且还能够确保返回值安全的转为BOOL型,无须三元操做符
相关文章
相关标签/搜索