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]]