美文网首页
对象的内存销毁时间表

对象的内存销毁时间表

作者: 佟掌柜666 | 来源:发表于2018-08-15 14:41 被阅读0次

    // 对象的内存销毁时间表

    // http://weibo.com/luohanchenyilong/ (微博@iOS程序犭袁)

    // https://github.com/ChenYilong

    // 根据 WWDC 2011, Session 322 (36分22秒)中发布的内存销毁时间表

    1. 调用 -release :引用计数变为零

        * 对象正在被销毁,生命周期即将结束.

        * 不能再有新的 __weak 弱引用, 否则将指向 nil.

        * 调用 [self dealloc]

    2. 子类 调用 -dealloc

        * 继承关系中最底层的子类 在调用 -dealloc

        * 如果是 MRC 代码 则会手动释放实例变量们(iVars)

        * 继承关系中每一层的父类 都在调用 -dealloc

    3. NSObject 调 -dealloc

        * 只做一件事:调用 Objective-C runtime 中的 object_dispose() 方法

    4. 调用 object_dispose()

        * 为 C++ 的实例变量们(iVars)调用 destructors

        * 为 ARC 状态下的 实例变量们(iVars) 调用 -release

        * 解除所有使用 runtime Associate方法关联的对象

        * 解除所有 __weak 引用

        * 调用 free()

    相关文章

      网友评论

          本文标题:对象的内存销毁时间表

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