我想在 AnyObject 中存储一个值,然后按如下方式检索它:
var obj:AnyObject = UIButton()
obj.setValue("James", forKey: "owner")
obj.valueForKey("owner")
但是,即使如错误所示这些方法可用,AnyObject 也不允许这样做:
setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key owner.'
这是怎么做到的?
最佳答案
您不能分配给 UIButton 的任意键。有些类确实允许这样做(想到 CALayer 和 CAAnimation,当然还有 NSDictionary),但是 UIButton 和 AnyObject 都不是这样的类,并且都没有 owner
属性——所以试图设置它是无稽之谈,这就是导致运行时崩溃的原因。您可以使用键设置按钮的现有属性,但您不能像这样发明自己的键。
关于ios - 在 Swift 中,对于 AnyObject,我如何设置 Value() 然后调用 valueForKey(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26667380/