摘要: 本条要点:(作者总结) 若想检测对象的等同性,请提供 “isEqual:” 与 hash 方法。 相同的对象必须具有相同的哈希码,但是这两个哈希码相同的对象却未必相同。 不要盲目地逐个检测每条属性,而是应该依照具体需求来制定检测方案。 编写 hash 方法时,应该使用计算速度快而且哈希码碰撞几率低的 阅读全文
posted @ 2017-06-18 21:54 鳄鱼不怕牙医不怕 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 本条要点:(作者总结) 在对象内部读取数据时,应该直接通过实例变量来读,而写入数据时,则应该通过属性来写。 在初始化方法及 dealloc 方法中,总是应该直接通过实例变量来读写数据。 有时会使用懒加载初始化技术配置某份数据,这中情况下,需要通过属性来读取数据。 在对象之外访问实例变量时,总是应该通 阅读全文
posted @ 2017-06-18 07:49 鳄鱼不怕牙医不怕 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 方法名 可通过如下特质来指定存取方法的方法名: getter=<name> 指定“获取方法”的方法名。如果某属性是 Boolean 型,而你想为其获取方法加上 “is” 前缀,那么就可以用这个方法来来指定。比如说,在 UISwitch 类中,表示“开关”(switch)是否打开的属性就是这样定义的: 阅读全文
posted @ 2017-06-18 02:16 鳄鱼不怕牙医不怕 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 属性特质: 使用属性时还有一个问题要注意,就是其各种特质(attribute)设定也会影响编译器所生成的存取方法。比如下面这个属性就指定了三项特质: 属性可以拥有的特质分为四类: 原子性 在默认情况下,由编译器所合成的方法会通过锁定机制确保其原子性(atomicity)(在并发编程中,如果某操作具备 阅读全文
posted @ 2017-06-18 01:13 鳄鱼不怕牙医不怕 阅读(187) 评论(0) 推荐(0) 编辑