是否可以在objective-c中在运行时注册KVO相关键?

时间:2013-10-25 21:33:12

标签: objective-c

在运行时改变+(NSSet*) keyPathsForValuesAffecting<Key>的输出是否会影响从属密钥?换句话说,这种方法被调用的频率/时间是什么?

1 个答案:

答案 0 :(得分:3)

the docs告诉我keyPathsForValuesAffecting<Key>仅在设置观察时被调用。

  

当密钥的观察者向接收类的实例注册时,键值观察本身会自动观察同一实例的所有密钥路径,并在密钥值发送给观察者时将其发送给观察者。任何这些关键路径都会发生变化。

在许多情况下,您可能会使用KVO本身通知您的观察者keyPathsForValuesAffecting<Key>已更改。某些自定义键的手动willChangeValueForKeydidChangeValueForKey通知将是处理动态更改键的一种方法。