observeValueForKeyPath未被调用

时间:2010-04-28 10:33:09

标签: iphone key-value-observing

我有一个ViewController创建一个UIView的实例,然后我用实例注册一个观察者,这样

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是否发生了变化,但观察到的V.ValueForKeyPath永远不会被调用...

我错过了什么吗?

感谢您的帮助!

安东尼奥

1 个答案:

答案 0 :(得分:20)

解决了它: 我直接在logoAnimation中设置patrocinioDidLoad,而不使用标准的getter和setter。在logoAnimation中,

patrocinioDidLoad = YES;

没有用,而

self.patrocinioDidLoad = YES;

做到了!