在Objective-C中观察对任何类属性的更改

前端之家收集整理的这篇文章主要介绍了在Objective-C中观察对任何类属性的更改前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
简而言之,当Objective-C类中的任何属性发生变化时,有没有办法接收一般通知?我知道我可以使用KVO来监视特定的属性更改,但每当有任何setProperty:消息发送到我的类时,我都需要调用一个特定的方法.我希望能够收到通用通知,而不必担心特别修改了哪个属性.

如果它有助于澄清我为什么要这样做,我正在使用这里找到的一些快速表滚动代码http://blog.atebits.com/2008/12/fast-scrolling-in-tweetie-with-uitableview/

完成此操作的部分过程是,只要修改了表视图单元格中的属性,就需要调用[self setNeedsDisplay].我宁愿不必为我的类中的每个属性重写setter方法来进行这个调用.

解决方法

正如Chuck所说,你可以创建一个从属密钥,或者当然你可以直接观察所有的属性(这比重载setter的工作少).

使用Objective-C运行时,如果您专门使用属性,则可以使用class_copyPropertyList()自动执行此过程.但是,如果此问题出现在您身上,我可能只会执行此操作.如果你只有这个问题的一个实例,那么直接观察属性列表可能更容易,更安全,更易于维护,除非你想在ObjC运行时工作.

原文链接:https://www.f2er.com/c/110365.html

猜你在找的C&C++相关文章