屬性存取方法中的內(nèi)存管理
- (void)setFoo:(id)foo
{
[foo retain];
[_foo release];
_foo = foo;
}
此方法將保留新值并釋放舊值映之,然后更新實(shí)例變量相赁,令其指向新值。
自動(dòng)釋放池
此特性很有用,尤其在方法中返回對(duì)象時(shí)更應(yīng)該用它。此方法可以保證對(duì)象在跨越“方法調(diào)用邊界”后一定存活。實(shí)際上,釋放操作會(huì)在清空最外層的自動(dòng)釋放池時(shí)執(zhí)行辩涝。這個(gè)時(shí)機(jī)指的就是當(dāng)前線程的下一次事件循環(huán)。
綜上所述勘天,autorelease能延長對(duì)象的生命周期怔揩,使其在跨越方法調(diào)用邊界后依然可以存活一段時(shí)間。