ios - 如何在 iOS 12.0 的 UserDefaults 中保存对象数组。使用任何数组 [[String: Any]]
问题描述
我想在不使用 Codable 的情况下将对象数组保存在用户默认值中。
我尝试将其转换为数据数组并保存在用户默认值中:
let childsArray = result["childs"] as? [[String: Any]]
let childsData = NSKeyedArchiver.archivedData(withRootObject: childsArray!)
UserDefaults.standard.set(childsData, forKey: "childsArray")
UserDefaults.standard.synchronize()
它给了我这个警告:
'archivedData(withRootObject:)' 在 iOS 12.0 中已弃用:使用 +archivedDataWithRootObject:requiringSecureCoding:error: 代替
如何解决此警告并实现在 UserDefaults 中保存对象数组的预期目标?
解决方案
let object1 = ["key1":"value1"]
let object2 = ["key2":"value2"]
let array = [object1, object2]
UserDefaults.standard.set(array, forKey: "childArray")
UserDefaults.standard.synchronize()
let storedArray = UserDefaults.standard.value(forKey: "childArray") as! [[String:String]]
print(storedArray)
推荐阅读
- android - 如何从代码(Java/Kotlin)文件中更改可绘制背景颜色
- powershell - 用于替换名称的 Powershell 脚本
- singularity-container - 具有相对路径的奇点定义文件
- swift - 无法使用 coreML 对手绘图像进行分类
- python - 目录和 python 字典
- python - 如何从 tkinter 获取条目的值
- nginx - 如果不是来自特定 IP,Nginx 如何阻止空用户代理
- javascript - 在jquery中查找前一个元素
- javascript - SCRIPT1003:IE 11 + angular 7 + vendor.js 中的预期':'
- flutter - 如何在发短信时使用向上和向下箭头从文本字段中选择建议