gpt4 book ai didi

ios - NSUserDefaults.standardUserDefaults().dictionaryForKey() 返回编译错误

转载 作者:行者123 更新时间:2023-11-30 13:12:29 26 4
gpt4 key购买 nike

我想检查 NSUserDefaults 是否有 dic 键的值,如果存在则加载数据并保存到 loadedDic 中,或者设置值loadedDic 并保存到 NSUserDefaults(如果没有)。

error! 注释的语句返回错误消息:

cannot assign value of type [String : AnyObject]? to [String : [String]]

我认为这应该没问题,因为方法 dictionaryForKey 的返回类型为 AnyObject。还是没有完全理解这个 AnyObject 类型:(

谁能向我解释一下错误的原因以及我应该如何解决这个问题?提前致谢。

以下代码块位于 UIViewController 类的 viewDidLoad() 方法中。

var loadedDic = [String : [String]]()

let defaults = NSUserDefaults.standardUserDefaults()

if defaults.dictionaryForKey("dic") != nil {
print("there's the value i want")
loadedDic = defaults.dictionaryForKey("dic")//error!
}else {
//some codes to set values of 'loadedDic'. this part works properly

defaults.setObject(loadedDic, forKey: "dic")
if defaults.synchronize(){
print("saved")
}
}

最佳答案

检查从 NSUserDefaults 接收到的字典类型是否为预期类型:

if defaults.dictionaryForKey("dic") != nil {
print("there's the value i want")
if let dic = defaults.dictionaryForKey("dic") as? [String : [String]]{
loadedDic = dic
}
}

关于ios - NSUserDefaults.standardUserDefaults().dictionaryForKey() 返回编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38583117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com