我在操场上有以下代码:
class Result :NSObject {
var success :Bool? = false
var message :String? = ""
}
var result = Result()
print(result.message)
var value :Bool? = true
result.setValue(value, forKey: "success")
result.setValue("hello", forKey: "message")
print(result.message)
此代码在第一个result.setValue
行上失败,并显示消息"此类与密钥成功不符合密钥值编码。"如果我使属性成功非可选,那么此代码工作正常。无论是否可选,属性消息都可以正常工作。
这里发生了什么?有什么方法吗?
答案 0 :(得分:1)
Swift没有反映。您正在使用Objective-C反射。
Objective-C不支持可选的值类型(BOOL
,Int
等。