简述OC中内存管理机制
管理机制:是使用一种叫做引用计数的机制来管理内存中的对象.OC中每个对象都对应着自己的引用计数,一次alloc对应一次release,一次retain也对应一次release,当对象的引用计数值为0时,对象会释放自己所占用的内存
readwrite,readonly,assign,retain,copy,nonatomic,atomic,strong,weak等属性的作用
readwrite:同时有getter和setter方法(默认) readonly:只有getter,没有setter方法nonatomic:不考虑线程安全 atomic:线程操作安全(默认)
atomic和nonatomic的区别:
atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作,其中1在多线程环境下,原子操作是必要的,否则有可能引起错误的结果,建议使用atomic;2在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。指出访问器不是原子操作,而默认地,访问器是原子操作。这也就是说,在多线程环境下,解析的访问器提供一个对属性的安全访问,从获取器得到的返回值或者通过设置器设置的值可以一次完成,即便是别的线程也正在对其进行访问。如果你不指定 nonatomic ,在自己管理内存的环境中,解析的访问器保留并自动释放返回的值,如果指定了 nonatomic ,那么访问器只是简单地返回这个值