首页 > 代码库 > 内存管理原则
内存管理原则
1.内存管理原则
苹果官方规定的内存管理原则
谁创建谁release :
- 如果你通过alloc、new、copy或mutableCopy来创建一个对象,那么你必须调用release或autorelease
谁retain谁release:
- 只要你调用了retain,就必须调用一次release
总结一下就是
- 有加就有减
- 曾经让对象的计数器+1,就必须在最后让对象计数器-1
2.多对象内存管理
单个对象的内存管理, 看起来非常简单
如果对多个对象进行内存管理, 并且对象之间是有联系的, 那么管理就会变得比较复杂
其实, 多个对象的管理思路 跟很多游戏的房间管理差不多
总的来说, 有这么几点管理规律
- 只要还有人在用某个对象,那么这个对象就不会被回收
- 只要你想用这个对象,就让对象的计数器+1
- 当你不再使用这个对象时,就让对象的计数器-1
3.set方法内存管理
- (1)retain需要使用的对象
- (2)release之前的对象
- (3)只有传入的对象和之前的不同才需要release和retain
- (void)setRoom:(Room *)room{ // 避免过度释放 if (room != _room) { // 对当前正在使用的房间(旧房间)做一次release [_room release]; // 对新房间做一次retain操作 _room = [room retain]; }}
4.dealloc方法的内存管理
- (void)dealloc{ // 当人不在了,代表不用房间了 // 对房间做一次release操作 [_room release]; [super dealloc];}
内存管理原则
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。