2010-11-29 21 views
1

新しいiOSアプリを最初から1つのウィンドウで作成するとします。 は、あなたがappDelegateアプリケーションdidFinishLaunching方法でこのコードを置く: iOS4(UIAlertView)なぜこのコードがメモリリークを引き起こすのですか?

UIAlertView *myAlert = [[UIAlertView alloc] 
    initWithTitle:@"alert"         
    message:@"message" 
    delegate:nil /* same problem with 'delegate:self' */ 
    cancelButtonTitle:nil 
    otherButtonTitles:@"Ok", nil]; 
[myAlert show]; 
[myAlert release]; 

ビルドとシミュレータ4.1で実行し、機器を取り付け、そして...これはたびにメモリリークが発生します。シミュレータの ヒョウの3.1.2、全く問題はありません。

もちろん、実際のアプリケーションでは、UIalertViewはボタンでトリガーされますが、結果は同じです。

何が問題ですか? はiOS4までUIAlertViewバグですか?

+0

にバグとして報告?あなたがそれを閉じるまでメモリは使用されるので、適切な間隔をテストするようにしてください。 – Eiko

+1

リークはそれよりも賢明です。孤立した実際のオブジェクトを検出します。 –

答えて

3

のシミュレータでリークをチェックしないでください。それは同じメモリモデルを持っていないので、何もないときにリークを報告します。実際のデバイス上の

テストおよび漏れが残っている場合、あなたはそれが実際に漏れたと思わせる何かアップル:)

+0

OK、ありがとう、ディーン、そうですよ!実際のデバイスでこのコードをテストすると、リークは発生しませんが、デバイスのテストは非常に遅いです!!!そして、奇妙なことに、leopard/sdk3.1.2では、デバイスとシミュレータは明らかに同じリーク反応を示します。 – Chrysotribax

+0

イエス、この答えのためのthx。私はシミュレータの内部で漏れをチェックするときに怒っていた:)。 – sabiland

関連する問題