如何知道某个类的某个属性是否符合 KVO?

Lol*_*Run 3 key-value-observing ios

我想在 UIView 的属性上使用 KVO,但我不知道它是否兼容。以“隐藏”财产为例。

我查阅了UIView类的头文件,并没有找到指示,还查阅了该属性的文档。有人谈到“检查参考资料的合规性”,他在说什么参考资料?

Mat*_* S. 5

听起来他们在这里指的是(相当模糊地)KVC 合规性文档:

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/KeyValueCoding/Articles/Compliant.html#//apple_ref/doc/uid/20002172

具体来说,您需要查看该类是否响应valueForKey:setValue:forKey:定的键。该文档对于如何实际检查合规性的说明相当少。我的第一个想法是将代码包装在 try/catch 块中,并捕获异常,但考虑到通常抛出该异常的方式,这可能行不通。

一般假设是 UIKit 中的大多数对象都不兼容KVO,如果您需要它们,您可以子类化并实现它。您可以在此处看到一个非常相似的问题/重复问题,其中包含 Apple 框架传播者 Dave Delong 的回答:iOS:如何知道属性是否符合 KVO?