KVO会做同样的事情吗?

时间:2018-07-16 05:10:49

标签: objective-c key-value-observing

如果没有区别,它们是否做同样的事情?

[self addObserver:self forKeyPath:@"user.name" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:SomeContext];

[self.user addObserver:self forKeyPath:@"name" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:SomeContext];

1 个答案:

答案 0 :(得分:1)

他们做的事情略有不同。前者遵循"user.name"上的密钥路径self,这意味着如果user或用户的name发生更改,它将触发。后者在"name"上观察到self.user,这意味着只有在该用户的name更改时才会触发。