Itérer le dictionary avec datatables du dictionary et l'append à un tableau dans swift

J'ai un dictionary avec plusieurs données de dictionary:

{ 1455201094707 = { }; 1455201116404 = { }: 1455201287530 = { }; } 

Je dois append tous ces dictionarys à un tableau dans swift. Comment itérer le dictionary comme:

 for let tempDict in dataDictionary { self.tempArray.addObject(tempDict) } 

Erreur "laisser le motif ne peut pas apparaître nested dans un context déjà immuable"

 for tempDict in dataDictionary as! NSMutableDictionary { self.tempArray.addObject(tempDict) } 

Erreur: L'élément type d'argument (aka (key: AnyObject, valeur: AnyObject)) le type d'argument n'est pas conforme au type attendu anyobject

 for tempDict in dataDictionary as! NSMutableDictionary { self.tempArray.addObject(tempDict as! AnyObject) } 

Erreur: Impossible de convertir la valeur de type '(Swift.AnyObject, Swift.AnyObject)' (0x1209dee18) en 'Swift.AnyObject' (0x11d57d018).

 for tempDict in dataDictionary { self.tempArray.addObject(tempDict) } 

Erreur: Valeur de Type AnyObject n'a aucun générateur de membre

modifier

Je veux le tableau final comme:

 ( { 1455201094707 = { }; } { 1455201116404 = { }: } ) 

Quelle est la bonne façon de mettre en œuvre cela?

Toute aide serait appréciée…..

J'ai utilisé le code:

 var tempArray:[NSDictionary] = [] for (key, value) in tempDict { tempArray.append([key : value]) } 

Erreur: valeur de type AnyObject n'est pas conforme au type de key de dictionary attendu NSCopying

code:

 let tempArray = tempDict.map({ [$0.0 : $0.1] }) 

Erreur: le type d'expression est ambigu sans plus de context

Tout d'abord, quand vous utilisez

 for let tempDict in dataDictionary { self.tempArray.addObject(tempDict) } 

Swift vous donne tuple comme (key, valeur) dans tempDict.

Donc, vous devriez itérer comme ça

 for (key, value) in sourceDict { tempArray.append(value) } 

Note: J'ai utilisé ici des structures rapides natives, et mon conseil – de les utiliser aussi souvent que possible (au lieu des ObjC)

Ou vous pouvez utiliser la fonction de carte sur le dictionary.

 let array = sourceDict.map({ $0.1 }) 

Modifier. Pour

 ( { 1455201094707 = { }; } { 1455201116404 = { }: } ) 

utilisation

 for (key, value) in sourceDict { tempArray.append([key : value]) } 

ou

 let array = dict.map({ [$0.0 : $0.1] }) 

Remarque. si vous utilisez NSDictionary, vous devez le convertir en dictionary rapide

 if let dict = dict as? [Ssortingng: AnyObject] { let array = dict.map({ [$0.0 : $0.1] }) print(array) } 
  1. Obtenez toutes les keys du dictionary, car ce NSDictionary a la propriété allKeys .

  2. Boucle toutes les keys et ajoute un object pour la key au tableau.

  3. Avant toutes les étapes ci-dessus, lisez la documentation !

Bonne chance!