OC编译器的特性:在声明成员变量时,编译器会产生一个硬编码的偏移量,它表示变量距离存放该对象的内存区域的起始地址的长度。OC把这个偏移量作为类对象的一个特殊变量,在runtime时期查找,就总可以生成正确的偏移量.
@property 属性:在没有进行任何手动操作的前提下,这个属性第一自动生成了getter和setter方法,同时生成了对应属性“_字段”的成员变量
@property中内存管理的语义:
4.关于使用点语法的原则:在初始化方法或者dealloc中,要用成员变量,不要用点语法(不知道为什么);在对象内部访问成员变量,写数据时使用点语法,这样有利于表达内存管理语义,读数据的时候尽量使用_成员变量.
5.在NSObject中,判断两个对象是否相等:调用方法isEqualTo,它的算法分三步:
第一,判断两个对象的指针是否相同
第二,若指针不相同,则判断两个类是否相同
第三, 若类相同,就依次判断各个属性是否相同
这些判断完了之后,则判断哈希码是否相同
原文地址:http://8365137.blog.51cto.com/8355137/1686927