是否可以使用本机Swift数据结构(如数组和字典)来键值代码(KVC)?键值编码仍可用于Swift中的NSFoundation结构,就像在Objective C中一样.
例如,这是有效的:
var nsarray: NSArray = NSArray() // Fill the array with objects var array: NSArray = nsarray.valueForKeyPath("key.path")
但这是无效的:
var swiftarray: Array = [] // Fill the array with objects var array = swiftarray.valueForKeyPath("key.path") // Invalid,produces a compile-time error
似乎不支持原生Swift对象上的KVC.这是我发现的最优雅的解决方法:
var swiftarray: Array = [] // Fill the array with objects var array: NSArray = (swiftarray as NSArray).valueForKeyPath("key.path") as NSArray