? ? ? 銷毀一個對象時,需要重寫系統的dealloc方法來釋放當前類所擁有的對象,在dealloc方法中需要先釋放當前類中所有的對象,然后再調用[super dealloc]釋放父類中所擁有的對象。如先調用[super dealloc]將釋放掉父類中所擁有的對象,當前類中所擁有的對象將得不得到釋放,這樣就會造成內存泄露。? ? ??
------錯誤的寫法--------
- (void)dealloc
{
????[super?dealloc];
????[XX release];
????......
}
-------正確的寫法--------
- (void)dealloc
{
????[XX release];
????[super?dealloc];
????......
}
?
? ? ? 所創建的都是繼承自根類的,有時會根據需要繼承一個父類,這樣父類中的實例變量也會繼承過來,這部分實例變量可能會在該類中使用,它們不會自動釋放內存,需要調用父類的dealloc方法來釋放其擁有的對象,然而在此之前,你需要先將當前類中擁有對象所占用的內存釋放掉,否則會造成泄漏。
?
?