Iは、次のコンテキストでKVOを使用したいwithEventを:私は/私はその後 ココアタッチの質問。</p> <p>1)touchesBeganにおいて:タッチシーケンスコンテキストでKVOを使用すること
KVO
を介して観察するオブジェクトのインスタンスを初期化ALLOC私の目的は、オブジェクトの生涯にわたる動きを観察することです。2)touchesEnded:withEvent:このインスタンスをNSMutableArrayに割り当て、インスタンス参照を解放します。これは、NSMutableArrayがNSMutableArrayを保持するようになったためです。また、removeObserver経由でインスタンスのオーバーバーを削除する必要があります。forKeyPath:
悪い匂いの配列要素に再度オブザーバを追加しない限り、これは問題があります。
所有者に関係なく、オブザーバーをオブジェクトに接続したままにする方法はありますか?
おかげで、Objective-Cで ダグ
オブジェクトにオブザーバを割り当てるときにオブジェクトのオブザーバを削除する必要がある理由についてもう少し説明できますか? –
touchesBegan:withEvent:で行われたalloc/initは、親クラスのivarによって行われます。これはtouchesBegan:withEvent:が呼び出されるたびに繰り返されます。 touchesEnded:withEvent:インスタンスを配列に渡します。時間の経過と共に配列が拡大/縮小します。私は、誰が現在それに対して主張しているのかに関わらず、オブザーバーにインスタンスをフォローする必要があります。 – dugla