簡體   English   中英

在一個類上使用removeObserver,將在所有類上刪除同一鍵路徑的所有觀察者嗎?

[英]removeObserver on one class, will remove all observers for the same keypath on all classes?

我正在使用最新的SDK開發iOS應用程序。

我在許多類上都有此代碼:

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

在每個類上,我在每個dealloc上添加以下代碼:

[[NSNotificationCenter defaultCenter] removeObserver:self];

我的問題是: 每個類上都必須刪除removeObserver嗎?

如果我在類實例Class1Class2上“觀察” CAR_MODE ,如果我在Class1上除去CAR_MODE觀察者,是否要在Class2上除去“觀察”?

首先,我假設對於“類”,您指的是“類實例”或“對象”:

如果我在類Class1和Class2上“觀察” CAR_MODE,如果我在類1上去除CAR_MODE的觀察者,是否要在類2上去除“觀察”?

不,每個對象都有其自己的觀察者,因此,如果在“ ClassInstance1”上將其刪除,則不會在“ ClassInstance2”上將其刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM