内存管理规则
获得途径 |
临时对象 |
拥有对象 |
alloc/new/copy |
不再使用时释放对象 |
在 dealloc 方法中释放对象 |
任何其他方法 |
不需要执行任何操作 |
获得对象时保留,在 dealloc 方法中释放对象 |
内存管理规则摘要: 1、释放对象,可以释放其所占的内存,规则是:不再使用创建或者保持的对象时,就释放它们。 2、发送一条 release 消息不一定销毁对象,只有引用计数变为0 时,才销毁这个对象。系统向
对象发送一条 dealloc 消息来释放它所占的内存。 3、自动释放池在释放池本身的时候自动释放池中的对象。系统向每个对象发送一条release 消
息,对引用计数变为 0 的对象发送一条 dealloc 消息来释放它所占的内存。 4、若你的方法中不再需要一个对象时,但需要返回它,可发送一条autorelease 消息来加入自
动释放池。
5、若使用 alloc 或 copy 方法(或使用 allocWithZone:、copyWithZone:或 mutableCopy 方法
来直接创建对象,则由你负责释放它。每次retain 对象时,应该 release 或 autoreleas 它。 6、除了上以规则中提到的方法之外,不必费心地释放其他方法返回的对象,这不是你的责任。