我正在製作一款iPhone遊戲。我想釋放已分配或保留的所有對象。在dealloc
函數中,我釋放了所有這樣的對象,但後來我意識到有時我最終會在尚未分配對象時釋放對象。所以我想我需要檢查其retainCount
是否大於零或不釋放它之前。我釋放分配或保留的對象多少次?
我的問題是:
難道我只是檢查是否retainCount
大於零,然後再釋放?
if([bg retainCount]!=0)
{
[bg release];
}
或
我應該釋放它多次作爲其retainCount
while([bg retainCount]!=0)
{
[bg release];
}
感謝您的幫助!
任何對象的'retainCount'都是**您的業務**。它在那裏作爲一種調試手段,但僅此而已。生產代碼永遠不應該依賴它。 – Sven 2010-09-16 21:11:00
順便說一句 - 不是它使代碼正確 - 但根據定義,'retainCount'永遠不會返回0,因爲該對象已被釋放的時間發生..... – bbum 2010-09-16 21:14:22
此外,請嘗試使用「構建&分析「(即Clang分析器)。它可能會指出你出錯的地方。 – 2010-09-17 00:18:14