美文网首页
GeekBand OC 10. 自动引用计数ARC

GeekBand OC 10. 自动引用计数ARC

作者: robinn9810 | 来源:发表于2016-05-22 21:04 被阅读22次

    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. 可以嵌套使用

    相关文章

      网友评论

          本文标题:GeekBand OC 10. 自动引用计数ARC

          本文链接:https://www.haomeiwen.com/subject/ektarttx.html