Swift 3:无法通过反射设置可选的布尔值



我有以下来自游乐场的代码:

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行失败,并显示消息"该类不符合键值编码,无法获得键成功"。如果我使属性success非可选,那么这段代码工作良好。不管属性消息是否是可选的,它都可以正常工作。

这是怎么回事?还有别的办法吗?

在Swift中没有反射。你正在使用Objective-C反射。可选的值类型(BOOL, Int等)在Objective-C中不支持

相关内容

  • 没有找到相关文章

最新更新