web-dev-qa-db-fra.com

swift: Ajouter plusieurs objets <clé, valeur> à NSDictionary

J'essaie d'ajouter plusieurs objets à NSDictionary, comme

var myDict: NSDictionary = [["fname": "abc", "lname": "def"], ["fname": "ghi", "lname": "jkl"], ...]

Est-il même possible de faire cela? Si non, s'il vous plaît suggérer un meilleur moyen. En fait, j'ai besoin de convertir ce NSDictionary en chaîne JSON et de l'envoyer au serveur. J'ai donc besoin de plusieurs objets dans NSDictionary.

27
Srujan Simha

Vous pouvez certainement faire un dictionnaire de dictionnaires. Cependant, vous avez besoin d'une syntaxe différente pour cela:

var myDictOfDict:NSDictionary = [
    "a" : ["fname": "abc", "lname": "def"]
,   "b" : ["fname": "ghi", "lname": "jkl"]
,   ... : ...
]

Ce que vous avez ressemble à un tableau de dictionnaires, cependant:

var myArrayOfDict: NSArray = [
    ["fname": "abc", "lname": "def"]
,   ["fname": "ghi", "lname": "jkl"]
,   ...
]

Pour obtenir un JSON qui ressemble à ceci

{"Data": [{"User": myDict1}, {"User": myDict1},...]}

vous devez ajouter le tableau ci-dessus à un dictionnaire, comme ceci:

var myDict:NSDictionary = ["Data" : myArrayOfDict]
48
dasblinkenlight

Swift 3.0

  • Élément de liste

Tout d’abord, vous pouvez créer NSArray et ensuite vous pouvez définir un tableau dans NSMutableDictionary en utilisant la méthode setvalue(forKey:) par défaut.

var arrFname : NSArray!

arrFname = ["abc","xyz","mno"]

var arrLname : NSArray!

arrFname = ["tuv","xuv","Swift"]

var dicSet : NSMutableDictionary!

dicSet.setObject(arrFname, forKey : "Fname")

dicSet.setObject(arrLname, forKey : "Lname")

print(dicSet)                                           
0
Jaydip