2011-12-17 26 views
1

以下の行は、私がプログラムを解析すると "潜在的なメモリリーク"を引き起こします。私はxCode(4.2)の最新バージョンを実行しています。プログラムはエラーなく実行され、多くのテストの後でクラッシュしたことはありません。どんな助けでも大歓迎です。事前に感謝しますこの潜在的なメモリリークの原因は何ですか?

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

答えて

7

あなたはUIColorオブジェクトを漏らしています。あなたはそれを初期化しますが、解放するためのポインタはありません。

あらかじめ作成しておいてください。または、上記の行でautoreleaseを解放してください。漏れたコードは非常に頻繁に実行されていない場合、あなたは非常に気付くことはありません(プログラマの不快感の漠然とした感覚を除く)走行中 - メモリリークが必ずしもあなたのプログラムがクラッシュすることがないことを

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

注意。しかし、それらは常に削除する必要があります - 特にこのような単純なもの。 iOSはメモリが制約された環境です。分析者がこの漏れを直ちに拾ったため、審査中にアップルが気付かない理由はない。

+0

ありがとうございました - 助けに感謝します。 – Gil

関連する問題