在Xcode 4.2,我發現這非常令人沮喪,因爲你不能使用:你如何在xcode 4.2中釋放內存?
-(void)dealloc {
[label release]; //'release' is unavailable
[super dealloc]; //'dealloc' is forbidden in automatic reference counting
}
是否有因爲自動釋放等deallocs不正常工作或另一種方式。
在Xcode 4.2,我發現這非常令人沮喪,因爲你不能使用:你如何在xcode 4.2中釋放內存?
-(void)dealloc {
[label release]; //'release' is unavailable
[super dealloc]; //'dealloc' is forbidden in automatic reference counting
}
是否有因爲自動釋放等deallocs不正常工作或另一種方式。
Xcode 4.2引入了「自動引用計數」(aka ARC)。這是一個編譯器功能,基本上爲您插入保留和釋放調用。在ARC下,如果你有一個指向對象的指針,你會保留它。當指針超出範圍或被重新分配指向另一個對象時,原始對象將被釋放。這太好了。
因此,簡而言之,你只是刪除所有來電retain
,release
和autorelease
,編譯器會做正確的事情爲你。
太棒了! – iphonemaniac
閱讀自動引用計數。如果您正確編寫代碼,則不需要再執行任何操作。
如果您想在不轉換的情況下使用舊代碼,請禁用ARC。將-fno-objc-arc
放在您不想使用ARC的任何源模塊的編譯器標誌中。
joe
......你沒有。除非你的項目使用手動內存管理。 – JoePasq
所以即使我沒有釋放內存,我也不會收到內存警告? – iphonemaniac
我不能說我的頭頂。檢查文檔,我不認爲記憶警告已經消失,尤其是iPhone 3GS仍在市場上。 – JoePasq