iOS 基础知识整理(不间断更新)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 基础知识整理(不间断更新)相关的知识,希望对你有一定的参考价值。
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 基础知识整理(不间断更新)的主要内容,如果未能解决你的问题,请参考以下文章
阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_3_对象的反序列化流_ObjectInputStream