本当に変です。私は-touchesEnded:、-touchesMoved、および-touchesBegan:メソッドを実装する空のUIImageViewサブクラスを持っています。これらのメソッドの実装は空です。彼らはただ何もしません。しかし、 "Leaks"でInstrumentsを実行しても、UIImageViewに触れ、画面に触れている間にUIImageViewの外に指を動かすと、InstrumentsからMemory Leak警告が表示されます。私はUIImageViewに触れるとこの奇妙なメモリリークを取得するのはなぜですか?
私のデモアプリケーションでは、そのときにオブジェクトの割り当てが行われていません。メソッドは空です。私がインストゥルメンツで読んだことはすべてFoundationとRun Loopに関係しています。私は自分のクラスを2回チェックしてオブジェクトの割り当てを取り除いた。それはイメージを表示するだけのスケルトンですが、そのイメージに触れたり、画面上で指を動かすとそのイメージは変更されません。それは意味をなさない。
他に誰かがこのような問題に遭遇しましたか?
アップデート:私はもう少し詳しく調べて、5本の指ですばやくタップすると画面上の任意の場所でメモリリークが起こることを知りました。 Instruments.appから得られるものは、実行ループとイベントループに関するものです。デバイスがタッチを十分に速く処理できず、割り振られたオブジェクトを解放してある時点で固まってしまうような場合です。同じ問題がある場合は、試してみてください。
更新日:私はいくつかのAppleのサンプルアプリケーションもテストしました。通常のユーザーのように3〜5本の指で画面をハックすると、Instrumentはイベントに関するメモリリークを表示し、ループを実行します。間違いなくフレームワークや計測器には大きなものがあります。 iPhone OS 2.2.1でテスト済み。
は、加速度計はまだ3.0で地獄のよう漏れています。ありがとう。 – SpaceDog
こんにちは、私は非常に迅速に何回も連続して画面をタップすると、同じ問題があります。 Leaksでは、メモリ割り当てが約16MB増加していることがわかります。 しかし、ゲームをするように普通にタップすると、割り当てのメモリが増加しません。 SDKの問題は解決しましたか?ありがとうございました。 –