web-dev-qa-db-ja.com

迅速:複数の<key、value>オブジェクトをNSDictionaryに追加します

NSDictionaryに複数のオブジェクトを追加しようとしています

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

これを行うことさえ可能ですか?そうでない場合は、より良い方法を提案してください。実際にこのNSDictionaryをJSON文字列に変換してサーバーに送信する必要があるため、NSDictionaryに複数のオブジェクトが必要です。

27
Srujan Simha

辞書の辞書を間違いなく作成できます。ただし、そのためには別の構文が必要です。

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

ただし、辞書のarrayのように見えます:

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

このようなJSONを取得するには

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

次のように、上記の配列を辞書に追加する必要があります。

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

Swift 3.

  • リストアイテム

NSArrayを作成して、setvalue(forKey:) defaultメソッドを使用してNSMutableDictionaryに配列を設定できます。

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