我有一个类似于以下内容的结构:
Struct User {
let name: String?
let address: String?
init(name: String, address:String) {
self.name = name
self.address = address
}
}
我正在尝试缓存用户配置文件,但我对执行此操作的最佳方法有疑问。
我上面给出的 struct 示例是我真实打击的较小尺寸,其中也包含个人资料图片。
我已经在 [UserDefaults] 中缓存了一些有用的东西,但我想知道是否应该在 UserDefaults 或 CoreData 中缓存用户配置文件?
如果您认为 UserDefaults 是最好的方法,我如何将这个 Class-type 存储到其中?我可以存储简单的布尔值等等,但是我怎么能保存一个像上面这样的结构,然后正确地获取它的数据呢?
self.cacheUser = User(name: "Ivan", address: "EUA")
如何将 [cacheUser] 缓存到 [NSUserDefaults] 中?
谢谢。
您可以使用 anNSKeyedArchiver
来归档对象,然后使用 anNSKeyedUnarchiver
来取消归档对象,但它必须符合NSCopying
协议。
如果CoreData
对象更广泛和复杂,您也可以使用来保存它们。
如果类中没有太多变量,您可以简单地将变量名称和值放在字典中,并将字典保存到您的用户默认值中。然后,您可以获取它们并使用保存在用户默认值中的字典值重建对象。但我只会在对象非常简单的情况下这样做(例如,一个带有几个 Int 和/或 Strings 的类)。
最后,我建议CoreData
用于持久化自定义对象。因为,随着类开始变得越来越复杂,CoreData
将为您提供更好的性能和更快的可访问性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句