对象的内存销毁时间表

  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()

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

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

你可能感兴趣的:(对象的内存销毁时间表)