8

一連のテーブルビューコントローラーにオブザーバーを動的に登録しているので、同じオブジェクトに登録されている場合は、以前のオブザーバーを削除する必要があります。これを行うには、オブザーバーがオブジェクトに存在するかどうかを確認する必要があります。

これは可能ですか?NSNotificationでNSNotificationセンターのシングルトンを使用できることは知っていますが、これはKVOでも同じですか?

4

2 に答える 2

17

同じオブジェクトに登録されているオブザーバーを削除するにはどうすればよいですか。

しかし、以下の方法は、解決策を見つけるために少し先に進むのに役立つと思います。

observationInfo

レシーバーに登録されているすべてのオブザーバーに関する情報を識別するポインターを返します。

- (void *)observationInfo

このメソッドのデフォルトの実装では、レシーバーのポインタをキーとするグローバル ディクショナリから情報を取得します。

于 2012-05-21T11:24:20.667 に答える
2

いいえ、私が知っている簡単な方法はありません。KVO と NSNotification はその点で異なります。その機能が必要な場合は、KVO の代わりに NSNotification を使用してソリューションを実装してみませんか?

于 2012-05-21T11:35:12.447 に答える