[英]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.