繁体   English   中英

setValue:forKey 在 swift 中总是崩溃

[英]setValue:forKey is always crashing in swift

我有以下用例:

class Foo: NSObject {
    var bar = ""
}

let foo = Foo()
foo.setValue("A name", forKey: "bar") //throws exception: this class is not key value coding-compliant for the key bar.
print("Foo.bar: \(foo.bar)")

Apple 文档( 此处)指出,在 Swift 中,每个 class 子类化 NSObject 默认符合键值。 如果是这样,为什么我得到不符合键值的异常?

继承自 NSObject 或其子类之一的 Swift 对象默认情况下符合其属性的键值编码。

我错过了什么吗? 任何人都知道这可能是问题吗?

注意:我试图制作“bar”属性 NSString 但我得到了同样的例外。

为属性实现 KVC(键值编码)支持。 你的属性需要@objc注解,由于目前KVC的实现是用Objective-C写的,加上@objc后,Objective-c就可以看到了。

class Foo: NSObject {
    @objc var bar = ""
}
let foo = Foo()
foo.setValue("A name", forKey: "bar")
print("Foo.bar: \(foo.bar)")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM