Swift: добавьте несколько объектов <key, value> в NSDictionary
Я пытаюсь добавить несколько объектов в NSDictionary, например
var myDict: NSDictionary = [["fname": "abc", "lname": "def"], ["fname": "ghi", "lname": "jkl"], ...]
Возможно ли это сделать? Если нет, предложите лучший способ. Мне действительно нужно преобразовать этот NSDictionary в строку JSON и отправить его на сервер, поэтому мне нужно несколько объектов в NSDictionary.
Ответы
Ответ 1
Вы можете сделать словарь словарей. Однако для этого вам нужен другой синтаксис:
var myDictOfDict:NSDictionary = [
"a" : ["fname": "abc", "lname": "def"]
, "b" : ["fname": "ghi", "lname": "jkl"]
, ... : ...
]
То, что у вас похоже на массив словарей, тем не менее:
var myArrayOfDict: NSArray = [
["fname": "abc", "lname": "def"]
, ["fname": "ghi", "lname": "jkl"]
, ...
]
Чтобы получить JSON, который выглядит следующим образом
{"Data": [{"User": myDict1}, {"User": myDict1},...]}
вам нужно добавить указанный выше массив в словарь, например:
var myDict:NSDictionary = ["Data" : myArrayOfDict]
Ответ 2
SWIFT 3.0
Фрист всего, что вы можете создать NSArray, и затем вы можете установить массив в NSMutableDictionary, используя метод setvalue(forKey:)
по умолчанию.
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)
Ответ 3
var tempDict = NSMutableDictionary()
tempDict.setValue("sam", forKey : "one")
print(tempDict["one"] ?? "1")