(4)Effective OC

来源:互联网 发布:风险控制矩阵文档 编辑:程序博客网 时间:2024/06/05 03:24

ITEM7:类内部采用直接访问实例变量的形式。

  • 读取实例变量采用直接访问形式,设置实例变量采用属性形式设置,self.xxx= xxx;
  • 直接访问实例变量的速度要比属性形式速度快,并且对于copy类的属性不会产生副本。
  • 通过属性形式来访问的可以添加断点来排错。折中办法就是第一条规则,两者结合使用。
  • 初始化方法中给属性赋值采用直接访问形式。
  • 某个实例变量采用延时加载时,可以通过属性形式来访问。

代码示例:

ITEM8:理解对象的“相等”

  •  == 比较的是对象的指针,而不是内容。
  • isEqual, hash 同时满足,则对象相等。
  • 重写isEqual是先用==判断指针,在判断是否属于同类型,在比较各项,hash返回相同值。
  • 特定的类使用自带的比较方法,如SString的isEqualToString,NSArray的isEqualToArray,NSDictionary的isEqualToDictionary。
  • 判断类的相等,不要盲目判断每个字段,视情况而定。
  • 相同的对象必须具有相同的哈希码,但是两个哈希码相同的对象却未必相同。
  • 编写 hash 方法时,应该使用计算速度快而且哈希码碰撞几率低的算法。

代码示例:


0 0
原创粉丝点击