您的位置:首页 > 移动开发 > Objective-C

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,所以得不到释放。

有自动释放内存的机制但不支持使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IOS 内存管理