17
我有一個視圖控制器創建一個UIView的實例,然後我在實例中註冊的觀察者,這樣observeValueForKeyPath不會被調用
logoAnimation = [[MainLogoAnimation alloc] init];
[logoAnimation addObserver:self forKeyPath:@"patrocinioDidLoad" options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:nil];
然後,在同一文件中,我有:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"%@ \n %@ \n %@ \n ",keyPath,object,change);
}
不過,雖然我已經檢查和反覆檢查logoAnimation.patrocinioDidLoad已經改變,observeValueForKeyPath不會被調用......
我缺少的東西?
感謝您的幫助!
安東尼
謝謝你解決了我的問題 對我來說,像logoAnimation = [[MainLogoAnimation alloc] init];沒有工作,但self.logoAnimation = [[MainLogoAnimation alloc] init] autorelease];作品。 – ssj 2011-04-21 03:58:19
所以如果你想使用@synthesize製作的setters和getters,你總是必須把「self」放在前面? – gonzobrains 2011-07-12 02:28:34
哇!經過幾個小時的測試,我的代碼發現爲什麼沒有調用obserValueForKeyPath,我終於發現這是爲什麼。爲什麼蘋果公司在文檔中大膽表明,必須通過二傳手(並因此使用該財產而不是伊娃)來使其運行? – ArtOfWarfare 2012-04-27 03:09:28