objective-c内存管理
2012-12-05 21:22
197 查看
Objective-c的内存管理机制主要是靠引用计数器来实现,当引用计数器的值为0时内存回收。
每个对象都是通过retain和release方法来控制引用计数器的加减。@property(xxxx,retain[copy][assign])NSxxx *obj;
在这里设置1、retain的后台实现为
第一步:把传过来的对象调用retain方法(就是让穿过来的对象的引用计数器的值变为2)
第二步:[obj release]释放掉上次设置的引用,没有引用时不会内存回收
第三步:将传过来的对象引用付给obj;
2、copy表示创建一个新的内存块copy一份
3、assign适用于对基本数据类型的设置如:int;
内存泄漏问题的出现主要是在用完一个对象后没有用release方法释放,导致他的引用计数器永远不能为0,所以得不到释放。
有自动释放内存的机制但不支持使用。
相关文章推荐
- 黑马程序员--Objective-C之--OC中的内存管理
- Objective-C内存管理教程和原理剖析(二)
- Objective-C内存管理教程和原理剖析(二)口诀与范式
- iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理
- iPhone/Mac Objective-C内存管理原理
- iPhone/Mac Objective-C内存管理教程和原理剖析
- 9、Objective-C语法之内存管理
- iPhone/Mac Objective-C内存管理教程和原理剖析
- 【转】iPhone/Mac Objective-C内存管理教程和原理剖析(二)口诀与范式
- 《Objective-C 高级编程 iOS与OS X多线程和内存管理》 核心札记二
- Objective-C的内存管理机制-MRC
- iphone objective-c内存管理
- Objective-C内存管理
- 对 objective-c 内存管理的一点儿认识
- Objective-C中的内存管理
- Objective-C 和 Core Foundation 对象相互转换的内存管理总结
- Objective-C内存管理
- iPhone/Mac Objective-C内存管理教程和原理剖析 【三、@property (retain)和@synthesize的默认实现】
- Objective-C(8)内存管理之自动释放池
- Objective-C 内存管理之 _ARC