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

对象的内存销毁时间表

作者: 佟掌柜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()

相关文章

  • 对象的内存销毁时间表

    // 对象的内存销毁时间表 // http://weibo.com/luohanchenyilong/ (微博@i...

  • Dealloc 流程分析

    //对象的内存销毁时间表 1.调用-release :引用计数变为零 对象正在被销毁,生命周期即将结束. 不能再有...

  • 对象的内存销毁时间表

    调用 -release :引用计数变为零 对象正在被销毁,生命周期即将结束. 不能再有新的 __weak 弱引用,...

  • deinit方法检测内存泄露

    //(deinit未调用,则内存泄露) deinit{ print("对象销毁,没有内存泄露:\(self.cla...

  • iOS 内存管理

    内存管理的原理 iOS 内存管理,是基于引用计数来管理内存;当对象引用计数为0时,对象将被销毁,回收内存空间;内存...

  • ObjC对象的销毁时间表

    销毁的开端 调用-release,release会调用:uintptr_t objc_object::sideta...

  • 加载图片的两个方法:imageName: imageWithCo

    使用imageName:加载图片 1.加载到内存当中会一直存在内存当中,(图片)不会随着对象的销毁而销毁。 2.加...

  • Android 关于内存管理的一些知识

    通常来说,对内存的管理、优化有以下两种方式: 在对象不需要的时候确保对象能够被销毁 如果对象没有被销毁,则该对象一...

  • 什么是浅拷贝和深拷贝?

    浅拷贝: 浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间.注意:当内存销毁的时候,指向对象的...

  • iOSUIimage加载图片的两种方法及区别

    一、imageName: 1.当对象销毁,图片对象不会随着一起销毁 2.加载的图片占据的内存较大 3.相同的图片只...

网友评论

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

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