我有一个创建UIView实例的ViewController,然后我向该实例注册了一个观察者,这样
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从未被调用过……
我是不是遗漏了什么?
谢谢你的帮助!
安东尼奥
发布于 2010-04-28 18:54:31
解决了这个问题:我直接在logoAnimation中设置patrocinioDidLoad,而不使用标准的getter和setter。在logoAnimation中,
patrocinioDidLoad = YES;
不起作用,然而
self.patrocinioDidLoad = YES;
做!
https://stackoverflow.com/questions/2728638
复制相似问题