gpt4 book ai didi

ios - 将字典保存到 NSUserDefaults Swift

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:30:31 27 4
gpt4 key购买 nike

我有一个字典,我想将它保存到 NSUserDefaults(或其他东西,这样我就可以在我终止应用程序后访问我的变量),我找到了一个例子:

var saved = NSUserDefaults.standardUserDefaults()
let dict = ["Name": "Paul", "Country": "UK"]
saved.setObject(dict, forKey: "SavedDict")

但是当我用它来挖掘字典时它不起作用。 (可能是因为我的字典有点不同)

我的词典是这样编的:

 var userDictionary = [Int : Event]()

struct Event {
var sensorName: String
var sensorType: String
var sensorSub: String

}

然后我添加这样的元素:

userDictionary[value] = Event(sensorName: "first", sensorType: "Temp", sensorSub: "Third")

这是我尝试做的,所以我可以存储它。

saved.setObject(userDictionary, forKey: "valueDictionary")

我得到这个错误:

Cannot convert value of type '[Int : SensorsView.Event]' to expected argument type 'AnyObject?'

为了避免这个错误,我这样做了:

self.saved.setObject(self.userDictionary as? AnyObject, forKey: "valueDictionary")

但我无法取回我保存的内容

不幸的是这个question在发表一些评论后没有帮助我我相信这里的目标是将我的字典转换为数据(或其他东西)并且在我检索它之后我将它转换回字典

最佳答案

尝试将数据转换为 NSData,然后像这样检索:

/// Save
NSUserDefaults.standardUserDefaults().setObject(NSKeyedArchiver.archivedDataWithRootObject(object), forKey: key)

/// Read
var data = NSUserDefaults.standardUserDefaults().objectForKey(key) as NSData
var object = NSKeyedUnarchiver.unarchiveObjectWithData(data) as [String: String]

关于ios - 将字典保存到 NSUserDefaults Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38294445/

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