web-dev-qa-db-fra.com

Convertir NSDictionary en Swift Dictionary

Maintenant, je sais que lorsque Swift compile, il crée simplement un NSDictionary, mais les dictionnaires NSDictionary et Swift ont une syntaxe différente. Y a-t-il un moyen (via une boucle ou quelque chose) pour convertir un NSDictionary en un dictionnaire Swift du même type pour <key, value>?

OR

Existe-t-il un moyen de le convertir en un dictionnaire Swift au lieu de NSDictionary?

let jsonDict = NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) as NSDictionary
42
cclloyd

utilisation:

let jsonDic = NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers, error: &error) as Dictionary<String, AnyObject>;
27
Arno

J'ai trouvé la réponse de 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
    }
}
4
Yang

NSDictionary et Dictionary sont à peu près interchangeables. Il n'est donc pas nécessaire, mais oui, vous pouvez:

let jsonDict = (NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) as NSDictionary) as Dictionary
3
Oxcug