如何观察NSObject属性的变化

| 我有一个具有70个属性的NSObject子类,我需要观察所有这些属性的变化,而不必使用以下方法逐个添加每个属性:
[self addObserver: self
       forKeyPath: @\"propertyname\"
          options: NSKeyValueObservingOptionNew
          context: NULL];
。请让我知道最简单的方法。现在,我需要10.5及更高版本的解决方案。     
已邀请:
        您可以使用Objective-C运行时函数class_copyPropertyList()来获取该类的所有属性,然后遍历列表并使用
property_getName()
来获取应与键值观察配合使用的内容。 或者您可以在所讨论的类上实现
keyPathsForValuesAffectingValueForKey:
。在课程上新建一个键,我们将仅将其用于更改检测。然后实现上述方法,如果传入的字符串等于您的新键,则返回一个包含所有70个属性的名称的集合。然后,您只需在新密钥上进行KVO,任何更改便会收到通知。这样,您将不知道哪个属性发生了变化,只是其中一个发生了变化。 这可能有助于告诉我们您为什么需要执行此操作,因为可能会使用更好的设计模式。     

要回复问题请先登录注册