0
介しオプションブール値を設定することができない私は遊び場から、次のコードを持っている:スウィフト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
行に失敗coding-キーの成功に対応しています。プロパティの成功を非オプションにすると、このコードは正常に動作します。プロパティメッセージは、オプションであるかどうかにかかわらず正常に動作します。
ここでは何が起こっていますか?その周りには道がありますか?
周囲の道案内がありますか?たとえば、NSNumberを使用する必要がありますか。 –
'NSObject'の' setValue'を残しておくと、少なくとも値のイントロスペクションのために、Swiftに_is_ reflectionがあります。 'ミラー(反映:結果).children.forEach {print($ 0)}'。 – dfri
@IanNewson「NSNumber」は確かに有効な解決策です。 – Sulthan