属性存取方法中的内存管理
- (void)setFoo:(id)foo
{
[foo retain];
[_foo release];
_foo = foo;
}
此方法将保留新值并释放旧值,然后更新实例变量,令其指向新值。
自动释放池
此特性很有用,尤其在方法中返回对象时更应该用它。此方法可以保证对象在跨越“方法调用边界”后一定存活。实际上,释放操作会在清空最外层的自动释放池时执行。这个时机指的就是当前线程的下一次事件循环。
综上所述,autorelease能延长对象的生命周期,使其在跨越方法调用边界后依然可以存活一段时间。