我希望将AnyObject变量转换为嵌套在Array中的Dictionary。例如,我在我的函数中声明了变量:
var items: [[String:String]] = [
[
"pid": "1",
"content": "123",
"vote": "1",
"city": "New York",
"country": "United States"
]
]
然后我从HTTP请求中获取JSON对象并将其转换为AnyObject。然后我试图将HTTP请求提取的数据作为AnyObject附加到原始变量上。
将AnyObject转换为所需的[[String:String]]形式时,此过程失败。
func updateTable(data: AnyObject?) {
let data_array = (data as! NSArray) as! Array<Dictionary<String, String>>
self.items += data_array
}
此函数包括变量的转换和数组的添加。
如何正确转换此变量?
修改 我忘了提到我将序列化JSON输出转换为[AnyObject],然后再将其传递给函数
答案 0 :(得分:3)
我认为你需要转换数组的各个元素。
func updateTable(data: [AnyObject]) {
for item in data {
if let item = item as? [String: String] {
items.append(item)
}
}
或者如果你想更简洁......
func updateTable(data: [AnyObject]) {
items += data.flatMap({$0 as? [String: String]})
}