2011-12-17 101 views
1

當我分析程序時,下面的行給我一個「潛在的內存泄漏」。我正在運行最新版本的xCode(4.2),該程序運行時沒有錯誤,並且經過多次測試後從未崩潰。任何幫助將不勝感激。在此先感謝這種潛在的內存泄漏的原因是什麼?

[self.topTenEntry1 setBackgroundColor:[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"reddishcolor.tiff"]]]; 

回答

7

您正在泄漏UIColor對象。你初始化它,但沒有指向它的指針來釋放。

可以事先創建並釋放它,或者在上面的行中自動釋放。

self.topTenEntry1 setBackgroundColor:[[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"reddishcolor.tiff"]]] autorelease]; 

注意,內存泄漏不一定會導致你的程序崩潰 - 運行過程中,如果不執行經常泄漏的代碼,你就不會在意(除了程序員的不適一種模模糊糊的感覺)。但是,他們應該總是被刪除 - 特別是像這樣簡單的。 iOS是一個內存受限的環境。分析儀立即發現這個泄漏,蘋果沒有理由在審查過程中不會注意到它。

+0

謝謝你做到了 - 感謝你的幫助。 – Gil 2011-12-20 02:37:21