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

Mic*_*ael 5 objective-c

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

Bra*_*red 3

文档keyPathsForValuesAffecting<Key>为我提供了仅在设置观察时才会调用的指示。

当键的观察者注册到接收类的实例时,键值观察本身会自动观察同一实例的所有键路径,并在其中任何一个的值发生变化时向观察者发送键的更改通知关键路径发生变化。

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