web-dev-qa-db-de.com

swift: Hinzufügen mehrerer <key, value> -Objekte zu NSDictionary

Ich versuche, mehrere Objekte zu NSDictionary hinzuzufügen, wie z

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

Ist das überhaupt möglich? Wenn nicht, schlagen Sie bitte einen besseren Weg vor. Ich muss dieses NSDictionary tatsächlich in eine JSON-Zeichenfolge konvertieren und an den Server senden, daher brauche ich mehrere Objekte in NSDictionary.

27
Srujan Simha

Sie können definitiv ein Wörterbuch für Wörterbücher erstellen. Dafür benötigen Sie jedoch eine andere Syntax:

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

Was Sie haben, sieht aus wie ein Array von Wörterbüchern:

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

Um JSON zu erhalten, sieht das so aus

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

sie müssen das obige Array wie folgt zu einem Wörterbuch hinzufügen:

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

Swift 3.0

  • Listenpunkt

Erstmal können Sie NSArray erstellen. Anschließend können Sie das Array in NSMutableDictionary mit der setvalue(forKey:)-Standardmethode festlegen.

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