前言:
内存管理是程序在运行时分配内存、使用内存,并在程序完成时释放内存的过程。在Objective-C中,也被看作是在众多数据和代码之间分配有限内存资源的所有权(Ownership)的一种方式。
内存管理关心的是清理或回收不用的内存,以便内存能够再次利用。
如果一个对象不再使用,就需要释放对象占用的内存。Objective-C提供了两种内存管理的方法:手动管理内存计数(MRR)和自动引用计数(ARC)。
这两种方法都采用了一种称为“引用计数”
的模型来实现,该模型由Foundation框架的NSObject类和运行时环境(Runtime Environment)共同提供。
I、内存管理
凡是函数名中带有create、copy、new、retain等字眼的,都应该在不需要这个数据的时候进行release。
GCD的数据类型在ARC环境下不需要进行release;而CF的数据类型在ARC、MRC环境下都需要做release的
1.1 ARC下内存管理的规则小结
-
需要释放的资源:imageCache、queue、operations、view、通知监听者的移除。销毁soundID。
-
释放的方法:dealloc 、applicationDidRec