我已经为 KVO 的设置苦苦挣扎了几个小时,但我设法让它工作:
这有效:
[self addObserver:self forKeyPath:@"session.loginState" options:0 context:nil];
这不会:
[self addObserver:self.session forKeyPath:@"loginState" options:0 context:nil];
请注意,self.session
懒惰地创建了一个空Session
对象,因此 self.session 永远不会nil
。但是,似乎:
- 的密钥路径
session.loginState
与self
...不一样 - 从 KVO 的角度来看
loginState
的关键路径self.session
为什么会这样?