ios - 在 Swift 中,对于 AnyObject,我如何设置 Value() 然后调用 valueForKey()

标签 ios xcode swift

我想在 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/

相关文章:

asp.net - 如何将 JSON POST 从 iOS 设备发送到 ASP.NET URL

ios - 游戏场景不显示

ios - unwind segue 将数据传递给不同的 View Controller

ios - 在远程 Mac 上通过 ssh 构建 cordova 应用程序

ios - 如何使用 AVURLAsset 流式传输视频并将缓存数据保存到磁盘

ios - UItableView with MagicalRecord 海量数据集

xcode - 游戏运行但没有任何反应

ios - 无法调用 dispatch_get_global_queue

ios - 如何从 ios9 连接到 postgresql

ios - 关于 Realm 数据库中的事务