2012-03-28 13 views
2

私の質問はとてもシンプルです:UIViewControllerがnilに設定されているときにジェスチャ認識機能とKVOがクリアされていますか?ARC - UIViewControllerがnilに設定されているときにジェスチャ認識機能とKVOが処理されますか?

私はユーザーがいくつかの複雑なUIViewControllerベースのインスタンスを作成して削除できるプロジェクトを持っています。これらはNSMutableArrayに格納されます。

インスタンスをインスタンスから削除してnilに設定した場合(余分なものと思われます)、インスタンスのすべての@propertiesはクリアされます(他のインスタンスへの参照がないと仮定します)。

EDIT 私はKVOsを管理していない場合は、下記の警告(エラー)を取得する - ので、私は答えは、キーながら、クラスのトラックの「NO」

インスタンス0xce26d40の割り当てが解除しなかったですね価値オブザーバーはまだそれに登録されていた。観測情報が漏洩し、他のオブジェクトに誤って添付されることさえあります。 NSKVODeallocateBreakにブレークポイントを設定して、ここでデバッガで停止します。ここでは、現在の観測情報があります: ( コンテキスト:0x0の、プロパティ:0x7530300> コンテキスト:0x0の、プロパティ:0x75320f0>

答えて

3

オブジェクトがその '@properties' を所有している(彼らはstrongまたはretain)をしていると仮定。ビューにはジェスチャ認識機能が追加されているため、オブジェクトの割り当てを解除するとそのプロパティと認識機能が解放され、他の誰も所有していなければ割り当てが解除されます。

キー値のオブザーバと通知オブザーバが必要です割り当てを解除する前に手動で登録解除してください。

+0

ok - それは理にかなっています。ありがとう! –

関連する問題