私はiPad専用アプリで作業しています。私は奇妙な問題を遭遇しました。アプリはiPad 1のメモリ警告の後に終了しますが、iPad 2では正常に動作します。 私はARCを使用していて、iOS 5をターゲットにしています.NIBを使用していて、ほとんどの資産がUIImageViewsを使用して表示されます。私は数百のボタンとたくさんのジェスチャーレコグナイザを持っています...私はARCのWWDC11ビデオ(セッション323と322)を見直しました。私は特別なことはしていないようです。ARC:メモリが再利用されませんか?
アプリはUIImageを大量に使用しています。私はUIImageを使用してたくさんのアニメーションを作成しています。しかし、私はimageNamedの呼び出しではなく、initWithContentsOfFileのコンストラクタを使用しています。私は画像がシステムによってキャッシュされないようにしようとしています。
また、GCDを使用してサウンドエフェクトをスケジュールし、ビューをアニメーション化しています。私は常にメインスレッドでこれをやっています。
このアプリケーションでは、スタックにUIViewControllerが2つ以上ないUINavigationControllerを使用しています。 didReceiveMemoryWarningが現在のビューコントローラで呼び出されるだけなので、これが真であることを確認できます(私は呼び出しをログに記録しています)。
私が理解していないことは、InstrumentsがAllocationsとVM Trackerの両方の機器で高い数値(ビューコントローラが割り当てが解除されないように)を報告している理由です。あるビューコントローラーから別のビューコントローラー(私が期待しているもの)にナビゲートすると、Allocationsインストゥルメントは小さなドロップを表示しますが、VMトラッカーインストゥルメントは、同じことを行うとDirty Sizeがドロップされないことを示します。最終的に、アプリはあまりにも多くのメモリを使い、終了します(iPad 1)。 iPad 2でメモリの警告が表示されても、アプリケーションは終了しません。
私の画像、サウンド、または表示が破壊されず、メモリが再利用されないように感じます... My object階層は非常に基本的なものであり、あらゆる種類の保持サイクルがあってはなりません。私は単純な代議員もいません...
あなたは何か提案がありますか?私は本当にiPad 2以降でのみこのアプリをリリースしたくない...それは子供向けのアプリであり、それは哀れみになるだろう...私は何かが間違っていることを学ぶことがとても幸せだろう、私は本当にこのアプリはそれができる最善であることを確認したいと...
乾杯、 ニック
簡単なコメント:私は、機器を使用してリークを検索するのに多くの時間を費やしましたが、そのように見えません。さらに、iPad 2がクラッシュして、最終的には燃え尽きると思います。 – nicktmro