cocoa – 如何观察NSObject属性的变化

cocoa – 如何观察NSObject属性的变化,第1张

概述我有NSObject的子类有70个属性,我需要观察所有这些属性的变化,而不是使用以下方法逐个添加每个属性: [self addObserver: self forKeyPath: @"propertyname" options: NSKeyValueObservingOptionNew context: NULL]; .请让我知道最简单的方法. 我有NSObject的子类有70个属性,我需要观察所有这些属性的变化,而不是使用以下方法逐个添加每个属性:

[self addobserver: self       forKeyPath: @"propertyname"          options: NSkeyvalueObservingOptionNew          context: NulL];

.请让我知道最简单的方法.现在,我需要10.5及更高版本的解决方案.

解决方法 您可以使用objective-C运行时函数 class_copyPropertyList()来获取该类的所有属性,然后遍历列表并使用property_getname()来获取应该使用键值观察的内容.

或者你可以在有问题的类上实现keypathsForValuesAffectingValueForKey :.在课堂上创建一个新密钥,我们只会用于变更检测.然后实现上面的方法,如果传入的字符串等于你的新键,则返回一个包含所有70个属性名称的集合.然后你可以在你的新密钥上做KVO,当有任何变化时你会收到通知.这样做,你不会知道哪个属性发生了变化,只是其中一个属性发生了变化.

它可能有助于告诉我们为什么需要这样做,因为可能有更好的设计模式可供使用.

总结

以上是内存溢出为你收集整理的cocoa – 如何观察NSObject属性的变化全部内容,希望文章能够帮你解决cocoa – 如何观察NSObject属性的变化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1018240.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存