autorelease 优先 retain 其次
Tip
给对象赋值时遵守 autorelease
的模式。之后</span> <span class="pre">
retain
当给一个变量赋值新的对象时,必须先释放掉旧的对象以避免内存泄露。有很多 “正确的” 方法可以处理这种情况。我们则选择 “autorelease
之后 retain
” 的方法,因为事实证明它不容易出错。注意大的循环会填满 autorelease
池,并且可能效率上会差一点,但权衡之下我们认为是可以接受的。
- - (void)setFoo:(GMFoo *)aFoo {
- [foo_ autorelease]; // Won't dealloc if |foo_| == |aFoo|
- foo_ = [aFoo retain];
- }