Ответ 1
использование:
let jsonDic = NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers, error: &error) as Dictionary<String, AnyObject>;
Теперь я знаю, что при быстрой компиляции он просто создает NSDictionary, но словаря NSDictionary и Swift имеют различный синтаксис. Есть ли способ (через цикл или что-то) преобразовать NSDictionary в быстрый словарь того же типа для <key, value>
?
ИЛИ
Есть ли способ преобразовать это в словарь Swift вместо NSDictionary?
let jsonDict = NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) as NSDictionary
использование:
let jsonDic = NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers, error: &error) as Dictionary<String, AnyObject>;
Я нашел ответ от http://www.swift-studies.com/blog/2014/6/6/loading-a-swift-dictionary-from-a-plist-file
var swiftDict : Dictionary<String,AnyObject!> = Dictionary<String,AnyObject!>()
for key : AnyObject in ocDictionary.allKeys {
let stringKey = key as String
if let keyValue = ocDictionary.valueForKey(stringKey){
swiftDict[stringKey] = keyValue
}
}
NSDictionary
и Dictionary
в значительной степени взаимозаменяемы. Поэтому нет необходимости, но да, вы можете:
let jsonDict = (NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) as NSDictionary) as Dictionary
let dict = JSONSerialization.jsonObject(with: dict1, options: .mutableContainers) as Dictionary<String, AnyObject>;
Просто объявляйте, что это словарь Swift
var values: [String: AnyObject] = [
"key1": 100,
"key2": "meow",
]
values["key3"] = 20