OC对象的内存销毁步骤
来源:互联网 发布:java校验身份证号 编辑:程序博客网 时间:2024/05/16 07:37
General Information
We take advantage of the documented Deallocation Timeline (WWDC 2011, Session 322, 36:22).
1. -release to zero
* Object is now deallocating and will die.
* New __weak references are not allowed, and will get nil.
* [self dealloc] is called
2. Subclass -dealloc
* bottom-most subclass -dealloc is called
* Non-ARC code manually releases iVars
* Walk the super-class chain calling -dealloc
3. NSObject -dealloc
* Simply calls the ObjC runtime object_dispose()
4. object_dispose()
* Call destructors for C++ iVars
* Call -release for ARC iVars
* Erase associated references
* Erase __weak references
* Call free()
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()
- OC对象的内存销毁步骤
- 对象的内存销毁时间表
- OC对象的内存管理
- OC对象的内存布局
- OC对象的内存分析
- 类定义,创建/销毁OC对象
- C#中对象的销毁和内存回收的方式
- Java中对象的创建、内存分配和销毁
- OC中关于对象的内存1
- OC学习笔记之OC对象的内存管理
- OC学习笔记之OC对象的内存管理二
- OC-024.OC中多对象的手动内存管理
- OC手动内存管理-自动释放池的销毁时机与工作过程
- 对象的销毁原则
- 对象的销毁
- Java对象的销毁
- 对象的销毁
- OC对象内存管理
- Heap模板类
- Problem f
- [LeetCode] Shortest Word Distance I & II & III (好题)
- javascript理解js闭包
- ajax实现jsp页面的动态刷新时间
- OC对象的内存销毁步骤
- python问题:IndentationError:expected an indented block错误解决
- eclipse中高亮显示选中的所有对象
- ExpandableListView(可展开的列表组件)的说明以及其用法
- POJ1797 Heavy Transportation
- android动画详解四 创建动画
- Objective-C程序设计 第6版
- srand()和rand()产生随机数
- iOS开发:OC篇:常用字符串方法的运用