码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 基础知识整理(不间断更新)

时间:2016-02-17 19:06:33      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

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:非线程安全,适合内存小得移动设备

 

iOS 基础知识整理(不间断更新)

标签:

原文地址:http://www.cnblogs.com/heyuanbo/p/5196005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!