Swift 为什么可以';我不能转换我的字典吗?

Swift 为什么可以';我不能转换我的字典吗?,swift,Swift,我正在尝试设置并获取嵌套字典,但无法获得正确的类型转换。调试器说: l = AnyObject? Some c = nil d = nil 这是代码 var userDefaults = NSUserDefaults.standardUserDefaults() userDefaults.removeObjectForKey("orch_array") userDefaults.setObject([orchId:[]],forKey: "

我正在尝试设置并获取嵌套字典,但无法获得正确的类型转换。调试器说:

l = AnyObject?  Some 
c = nil 
d = nil
这是代码

        var userDefaults = NSUserDefaults.standardUserDefaults()
        userDefaults.removeObjectForKey("orch_array")
        userDefaults.setObject([orchId:[]],forKey: "orch_array")

        let b = NSUserDefaults().dictionaryForKey("orch_array")
        let l = b?[orchId]
        let c = b?[orchId] as? [String:String]
        let d = b?[orchId] as? [String:[String]]

这是因为您没有使用
setObject
在字典中创建字典–您正在创建一个数组(
[]
而不是
[:]

这似乎工作正常:

let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.removeObjectForKey("orch_array")
userDefaults.setObject([orchId:[:]],forKey: "orch_array")

let b = NSUserDefaults().dictionaryForKey("orch_array")
let c = b?[orchId] as? [String:String]
let d = b?[orchId] as? [String:[String]]