我正在尝试从视图控制器中观察Singleton中的字符串。
在我的视图控制器中,我在viewDidLoad中执行此操作:
Singleton *singleton = [Singleton sharedSingleton];
[singleton addObserver:self
forKeyPath:@"testString"
options:NSKeyValueObservingOptionNew
context:nil];
..并且此代码位于视图控制器的底部:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"recieved");
}
Singleton中的testString在5秒后更改,但是没有调用observeValueForKeyPath。我做错了什么?
答案 0 :(得分:5)
使用属性,例如<{1}}代替self.testString = newString
或KVO无效。