对象的内存销毁时间表

  1. 调用 -release :引用计数变为零
  • 对象正在被销毁,生命周期即将结束.
  • 不能再有新的 __weak 弱引用, 否则将指向 nil.
  • 调用 [self dealloc]
  1. 子类 调用 -dealloc
  • 继承关系中最底层的子类 在调用 -dealloc
  • 如果是 MRC 代码 则会手动释放实例变量们(iVars)
  • 继承关系中每一层的父类 都在调用 -dealloc
  1. NSObject 调 -dealloc
  • 只做一件事:调用 Objective-C runtime 中的 object_dispose() 方法
  1. 调用 object_dispose()
  • 为 C++ 的实例变量们(iVars)调用 destructors
  • 为 ARC 状态下的 实例变量们(iVars) 调用 -release
  • 解除所有使用 runtime Associate方法关联的对象 * 解除所有 __weak 引用
  • 调用 free()

对象的内存销毁时间表:参考链接

摘自这里,点击查看更多问题及答案

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容