用字典数据迭代Dictionary并将其添加到数组中
我有一个包含多个字典数据的字典:
{ 1455201094707 = { }; 1455201116404 = { }: 1455201287530 = { }; }
我必须快速地将所有这些字典添加到数组中。 如何迭代字典为:
for let tempDict in dataDictionary { self.tempArray.addObject(tempDict) }
错误“让模式不能出现嵌套在已经不可变的上下文中”
for tempDict in dataDictionary as! NSMutableDictionary { self.tempArray.addObject(tempDict) }
错误:参数types元素(aka(key:AnyObject,value:AnyObject))参数types不符合预期typesanyobject
for tempDict in dataDictionary as! NSMutableDictionary { self.tempArray.addObject(tempDict as! AnyObject) }
错误:无法将types'(Swift.AnyObject,Swift.AnyObject)'(0x1209dee18)的值转换为'Swift.AnyObject'(0x11d57d018)。
for tempDict in dataDictionary { self.tempArray.addObject(tempDict) }
错误:AnyObjecttypes的值没有成员生成器
编辑
我想最后的数组为:
( { 1455201094707 = { }; } { 1455201116404 = { }: } )
什么是正确的方法来实现这个?
任何帮助将不胜感激…..
我用过的代码是:
var tempArray:[NSDictionary] = [] for (key, value) in tempDict { tempArray.append([key : value]) }
错误:AnyObjecttypes的值不符合期望的字典密钥typesNSCopying
代码:
let tempArray = tempDict.map({ [$0.0 : $0.1] })
错误:expression式的types不明确,没有更多的上下文
首先,当你使用
for let tempDict in dataDictionary { self.tempArray.addObject(tempDict) }
Swift在tempDict中给出了像(key,value)这样的元组。
所以你应该像这样迭代
for (key, value) in sourceDict { tempArray.append(value) }
注意:我在这里使用了native swift结构,我的build议是尽可能多地使用它们(而不是ObjC)
或者你可以在字典上使用map-function。
let array = sourceDict.map({ $0.1 })
编辑。 对于
( { 1455201094707 = { }; } { 1455201116404 = { }: } )
使用
for (key, value) in sourceDict { tempArray.append([key : value]) }
要么
let array = dict.map({ [$0.0 : $0.1] })
注意。 如果你使用NSDictionary,你应该将其转换为swift字典
if let dict = dict as? [String: AnyObject] { let array = dict.map({ [$0.0 : $0.1] }) print(array) }
-
获取字典中的所有密钥,因为此
NSDictionary
具有属性allKeys
。 -
循环所有的键,并将键的对象添加到数组中。
-
在上述所有步骤之前,请阅读文档 !
祝你好运!