removeObserver在一个类上,将删除所有类中相同keypath的所有观察者?

时间:2013-03-25 10:02:39

标签: ios objective-c

我正在使用最新的SDK开发iOS应用程序。

我在很多课程上都有这段代码:

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

在每个课程中,我在每个dealloc上添加:

[[NSNotificationCenter defaultCenter] removeObserver:self];

我的问题是:我是否必须在每个课程中删除Observer?

如果我正在观察'关于类实例CAR_MODEClass1的{​​{1}},如果我删除了Class2CAR_MODE的观察者,我是否会删除'观察'在Class1

1 个答案:

答案 0 :(得分:0)

首先,我假设“class”是指“class instance”或“object”:

  

如果我在类Class1和Class2上“观察”CAR_MODE,如果我在Class1上删除了CAR_MODE的观察者,我是否会删除Class2上的“观察”?

不,每个对象都有自己的观察者,所以如果你在“ClassInstance1”上删除它,它就不会被“ClassInstance2”删除。