用字典数据迭代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) } 
  1. 获取字典中的所有密钥,因为此NSDictionary具有属性allKeys

  2. 循环所有的键,并将键的对象添加到数组中。

  3. 在上述所有步骤之前,请阅读文档 !

祝你好运!