在NSUserDefaults中存储字典

时间:2015-08-28 21:09:26

标签: ios xcode dictionary nsuserdefaults

我在Stack Overflow上就此问题阅读了很多内容,即Swift NSUserDefaults not saving Dictionary?Saving dictionary into NSUserDefaultsStore 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)时,字典中没有数据。任何人都有解决方案来解决这个问题?预先感谢您的帮助! :)

0 个答案:

没有答案