我有以下来自游乐场的代码:
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中不支持