标签:
1.内存管理黄金法则
如果使用了new、alloc或copy方法获得一个对象,则必须释放(release)或自动释放(autorelease)该对象
2.内存释放池
加上autorelease,就是在内存释放池中登记了,这个对象要释放,不过得等会,等到内存释放池执行drain或者release方法了,那么池中登记的对象也全部释放
内存释放池 :内存释放池就是NSAutoreleasePool。这个池(pool)类似数据结构中的堆栈(Stack),相当于一个容器,每次对象调用autorelease方法时(obj-c中的正式说法应该是:对象发送autorelease消息),对象的引用计数并不真正变化,而是向pool中添加一条记录,记下对象的这种要求。最后当pool发送drain或release消息时,池中的所有对象的这种要求一一被执行(即:pool被销毁前,会通知池中的所有对象,全部发送release消息真正将引用计数减少,如果对象之前有发送过autorelease消息)
3.原子atomic 和 非原子nonatomic的区别
atomic:线程安全,需要消耗大量资源 nonatomic:非线程安全,适合内存小得移动设备
标签:
原文地址:http://www.cnblogs.com/heyuanbo/p/5196005.html