Sha*_*man 3 key-value-coding ios swift
我有一个场景,我在Swift中有一个简单的数据对象,包含多个属性变量.它们的混合String?和Double?值类型.我正在尝试使用获取每个属性的值valueForKey.我的代码看起来像这样......
let myDataObj = ...
let stringKeyName = "myStringProperty"
let doubleKeyName = "myDoubleProperty"
guard let stringPropertyValue = myDataObj.valueForKey(stringKeyName) else {
return
}
guard let doublePropertyValue = myDataObj.valueForKey(doubleKeyName) else {
return
}
Run Code Online (Sandbox Code Playgroud)
第一次调用get stringPropertyValue工作正常,我能够按预期检索值.但是,第二次检索调用doublePropertyValue失败,并出现例外情况," this class is not key value coding-compliant for the key myDoubleProperty.'"
我知道属性名称是正确的,我也知道为此属性设置了一个值.为什么它valueForKey适用于String对象,而不适用于Double对象?
正确的是,您只能对可以在Objective-C中表示的类型进行键值编码.不幸的是,表示为在Objective-C的原始数据类型(例如Swift的那些类型Int和Double被表示为NSInteger和double在Objective-C,分别地)不能被呈现为这样,如果他们是自选.在Objective-C中,选项只对类类型有意义,而不是基本数据类型.
| 归档时间: |
|
| 查看次数: |
1155 次 |
| 最近记录: |