如果没有区别,它们是否做同样的事情?
[self addObserver:self forKeyPath:@"user.name" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:SomeContext];
和
[self.user addObserver:self forKeyPath:@"name" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:SomeContext];
答案 0 :(得分:1)
他们做的事情略有不同。前者遵循"user.name"
上的密钥路径self
,这意味着如果user
或用户的name
发生更改,它将触发。后者在"name"
上观察到self.user
,这意味着只有在该用户的name
更改时才会触发。