kev*_*kev 6 key-value-coding swift
是否可以使用本机Swift数据结构(如数组和字典)来键值代码(KVC)?键值编码仍可用于Swift中的NSFoundation结构,就像在Objective C中一样.
例如,这是有效的:
var nsarray: NSArray = NSArray()
// Fill the array with objects
var array: NSArray = nsarray.valueForKeyPath("key.path")
Run Code Online (Sandbox Code Playgroud)
但这是无效的:
var swiftarray: Array = []
// Fill the array with objects
var array = swiftarray.valueForKeyPath("key.path") // Invalid, produces a compile-time error
Run Code Online (Sandbox Code Playgroud)
kev*_*kev 11
似乎不支持原生Swift对象上的KVC.这是我发现的最优雅的解决方法:
var swiftarray: Array = []
// Fill the array with objects
var array: NSArray = (swiftarray as NSArray).valueForKeyPath("key.path") as NSArray
Run Code Online (Sandbox Code Playgroud)
我发现了这个:
var array = swiftarray.map({$0["key.path"]! as ObjectType})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10274 次 |
| 最近记录: |