我在Stack Overflow上就此问题阅读了很多内容,即Swift NSUserDefaults not saving Dictionary?,Saving dictionary into NSUserDefaults和Store and update a Swift Dictionary in NSUserDefaults Xcode。但是,我似乎无法找到有效的解决方案。
有人慷慨地提供了适合他或她的代码片段,但这对我不起作用,我不确定为什么。这是我试过的:
var addressDict = Dictionary<Int, Array<String>>()
addressDict[3] = ["string1", "string2"] //some example values
let data = NSKeyedArchiver.archivedDataWithRootObject(addressDict) //archiving
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(data, forKey: "address") //storing
if let data2 = defaults.objectForKey("address") as? NSData { //reading
let addressDict2 = NSKeyedUnarchiver.unarchiveObjectWithData(data2) //unarchiving
print(addressDict2)
}
我运行了这段代码。然后我注释掉addressDict[3] = ["string1", "string2"]
并再次运行应用程序。但是,它似乎没有保存到内存中,因为当这行代码执行print(addressDict2)
时,字典中没有数据。任何人都有解决方案来解决这个问题?预先感谢您的帮助! :)