GeekBand OC 10. 自动引用计数ARC

2016-05-22  本文已影响22人  robinn9810

ARC 自动引用计数(OC内存管理机制)

管理对象的创建与释放(主要管理OC 对象指针,不管理值类型(包括struct),malloc分配的堆对象)

引用计数管理

新创建对象,对象的引用计数为1

引用计数+1:

1. 赋值给其他变量

2. 赋值给属性或实例变量

3. 传参(离开函数时引用计数-1)

4. 将对象加入集合中

引用计数-1:

1. 将变量赋值为nil或其他值

2. 将属性赋值为nil或其他值

3. 实例属性所在的对象被释放

4. 参数离开函数

5. 将对象从集合中删除

引用计数为0时,内存自动被释放

(main栈、变量属性、静态数据区(全局变量)、函数栈上的指针指向对象时计入ARC)

自动释放池Autorelease Pool

autorelease可以将release延迟到自动释放池释放时

推荐使用@autoreleasepool{}

手工管理autoreleasepool

1. 命令行程序(非UI框架)

2. 函数中创建大量临时对象,需要提前手工释放

(3. 主线程之外的新线程开始执行处)

4. 可以嵌套使用

上一篇下一篇

猜你喜欢

热点阅读