iOS KVO观察另一个类属性

时间:2017-10-30 10:07:57

标签: ios observers

无论如何都要观察另一个类的属性,比如观察iOS中的单例实例。我已经尝试过,但我不知道从另一个类写出keypath会不会很热。

[self addObserver:self forKeyPath:@"otherclass/keypath" options:NSKeyValueObservingOptionNew context:NULL];

2 个答案:

答案 0 :(得分:0)

您是否尝试过这样做:

[Otherclass addObserver:self forKeyPath:@"keypath" options:NSKeyValueObservingOptionNew context:NULL];

答案 1 :(得分:0)

addObserver消息的接收者是被观察对象。所以它应该是你的单身人士的实例。 keypath应该以此单例的可观察属性的名称开头。 E.g:

[[SingletonClass instance] addObserver:self forKeyPath:@"propertyName" options:NSKeyValueObservingOptionNew context:NULL];

密钥路径可以包含由点分隔的属性名称链。仅用于说明:如果要观察关键窗口的根视图控制器,可以执行

[[UIApplication sharedApplication] addObserver:self 
    forKeyPath:@"keyWindow.rootViewController" 
    options:NSKeyValueObservingOptionNew context:NULL];