外课上的 KVO 不起作用



我有一个带有NSString属性currentTag的MainViewController。所以我这样做:

[self addObserver:self forKeyPath:@"currentTag" options:NSKeyValueObservingOptionNew context:nil];

这工作正常,并且更改确实得到了正确处理。但是,我还有另一个类 SecondViewController,我也希望它观察 MainViewController 的 currentTag,所以在 SecondViewController 的 viewDidLoad 方法中,我这样做:

[self addObserver:self.mainViewController forKeyPath:@"currentTag" options:NSKeyValueObservingOptionNew context:nil];

但是,由于某种原因,这个问题没有得到处理。它永远不会被调用。我想确保我的语法和形式是正确的,然后再在我的代码中寻找问题的其他地方。这段代码看起来没问题吗?

你做错了,你应该做:

[self.mainViewController addObserver:self forKeyPath:@"currentTag" options:NSKeyValueObservingOptionNew context:nil];

最新更新