それは本当に奇妙です。-touchesEnded:、-touchesMoved、および -touchesBegan: メソッドを実装する空白の UIImageView サブクラスがあります。これらのメソッドの実装は空です。彼らはただ何もしません。ただし、「Leaks」を使用して Instruments を実行し、UIImageView に触れて、画面に触れたまま UIImageView の外に指を移動すると、Instruments からメモリ リークの警告が表示されます。
私のデモアプリでは、それを行うときにオブジェクトの割り当ては発生しません。メソッドは空です。Instruments で読んだものはすべて、Foundation と Run Loop に関するものです。クラスを 2 回チェックし、オブジェクトの割り当てを削除しました。画像を表示するだけのスケルトンですが、画面に触れたり指を動かしたりしても、その画像は変化しません。それは意味がありません。
他の誰かがこのような問題に遭遇しましたか?
更新:もう少しテストして、5 本の指ですばやくタップすると、画面上の任意の場所でメモリ リークが発生することがわかりました。Instruments.app から得られるものはすべて、いくつかの実行ループとイベント ループに関するものです。デバイスがタッチを十分に速く処理できず、割り当てられたオブジェクトを解放するときにスタックするようです。試してみて、同じ問題が見られる場合は、ここに報告してください。
更新:いくつかの Apple サンプル アプリもテストしました。通常のユーザーが行うように、画面上で 3 ~ 5 本の指でハックすると (はい、そうします!)、Instrument はイベントと実行ループに関するメモリ リークを表示します。確かに、フレームワークや楽器には大きなものがあります。iPhone OS 2.2.1 でテスト済み。