我在我的應用程序類A和類B中有兩個類。類A和B都是UIViewController的實例。類A有一個按鈕,當按下時將類B推入堆棧。 B類有一個字符串,類A想要根據需要觀察和更新它的接口。我已經能夠在B類中使用: [self addObserver:self forKeyPath:@"name" options:0 context:NULL];
來查看對字符串的更改。 當我嘗試使用下面的A類viewWillAppear中方法:兩類之間的iPhone KVO
ClassB *b = [[ClassB alloc]init];
[b addObserver:self forKeyPath:@"name" options:0 context:NULL];
,並添加方法:
(void)observeValueForKeyPath:(NSString)keyPath ofObject:(id)object
change:(NSDictionary)change
context:(void)context
試圖查看從A在B製備的更新時,無需任何操作觸發我感覺愚蠢的問這個問題,但是KVO如何在iOS中的兩個類之間工作?我知道這應該工作。
這可能是問題。您需要使用options參數來指示您想要的通知。通過傳入0,您不會要求通知任何事情。 – benzado 2010-11-10 22:38:42
nekno,感謝您的幫助! – fmcauley 2010-11-11 02:08:30
如果這有助於任何人,我有一個問題,我的observeValueForKeyPath消息沒有發射,即使我寫出來幾乎與nekno完全一樣。你*有*改變屬性使用self.name = newvalue,* NOT *只是name = newvalue。 – Mirkules 2011-03-12 00:35:36