如何将AnyObject
数组的数组转发为String
数组的数组?
我尝试了以下代码:
let v1:[[AnyObject]] = [["hello"]] // v1 type is [[AnyObject]]
let v2 = v1 as! [[String]] // compile error!
但是这段代码不会编译错误:
'String'与'AnyObject'
不同
如果我只是尝试将AnyObject
的数组向下转换为String
的数组,那么它可以正常工作:
let v1:[AnyObject] = ["hello"] // v1 type is [AnyObject]
let v2 = v1 as! [String] // v2 type is [String] as expected
答案 0 :(得分:9)
您已经回答了自己的问题。在第一个代码中,对数组的每个元素,在第二个代码中成功执行的操作。像这样:
let v2 = v1.map {$0 as! [String]}