Подтвердить что ты не робот

Swift: добавьте несколько объектов <key, value> в NSDictionary

Я пытаюсь добавить несколько объектов в NSDictionary, например

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

Возможно ли это сделать? Если нет, предложите лучший способ. Мне действительно нужно преобразовать этот NSDictionary в строку JSON и отправить его на сервер, поэтому мне нужно несколько объектов в NSDictionary.

4b9b3361

Ответ 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")