gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 16:08:35 26 4
gpt4 key购买 nike

我的 NSObject 子类有 70 个属性,我需要观察所有属性的变化,而无需使用以下方法逐一添加每个属性:

[self addObserver: self
forKeyPath: @"propertyname"
options: NSKeyValueObservingOptionNew
context: NULL];

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

最佳答案

您可以使用 Objective-C 运行时函数 class_copyPropertyList()获取该类的所有属性,然后循环遍历列表并使用 property_getName() 获取应与键值观察一起使用的内容。

或者您可以在相关类上实现keyPathsForValuesAffectingValueForKey:。在类上创建一个新键,我们仅将其用于更改检测。然后实现上面的方法,如果传入的字符串等于你的新键,则返回一个包含所有七十个属性名称的集合。然后您可以对新 key 执行 KVO,当发生任何变化时您都会收到通知。通过这种方式,您将不知道哪个属性发生了变化,只知道其中一个属性发生了变化。

告诉我们为什么您需要这样做可能会有所帮助,因为可能有更好的设计模式可供使用。

关于cocoa - 如何观察 NSObject 属性的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6354368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com