1

最新のSDKを使用してiOSアプリケーションを開発しています。

私は多くのクラスにこのコードを持っています:

[[NSUserDefaults standardUserDefaults] addObserver:self
                                        forKeyPath:CAR_MODE
                                           options:NSKeyValueObservingOptionNew
                                           context:NULL];

そして、各クラスで、これを各deallocに追加します。

[[NSNotificationCenter defaultCenter] removeObserver:self];

私の質問は、各クラスでObserverを削除する必要がありますか?

CAR_MODEクラスインスタンスで「監視」している場合Class1、およびClass2のオブザーバーを削除するCAR_MODEClass1、「監視」を削除しClass2ますか?

4

1 に答える 1

0

まず、「クラス」の場合、「クラスインスタンス」または「オブジェクト」を意味すると思います。

クラスClass1とClass2でCAR_MODEを「監視」している場合、Class1でCAR_MODEのオブザーバーを削除すると、Class2で「監視」を削除しますか?

いいえ、すべてのオブジェクトには独自のオブザーバーがあるため、「ClassInstance1」でオブジェクトを削除しても、「ClassInstance2」では削除されません。

于 2013-03-25T10:06:17.273 に答える