• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 将字典保存到 NSUserDefaults Swift

[复制链接]
菜鸟教程小白 发表于 2022-12-12 21:14:24 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

var saved = NSUserDefaults.standardUserDefaults()
let dict = ["Name": "aul", "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在一些评论后没有帮助我我相信这里的目标是将我的字典转换为数据(或其他东西),在我检索到它之后我将它转换回字典



Best Answer-推荐答案


尝试将数据转换为 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap