缓存用户配置文件

Posted

技术标签:

【中文标题】缓存用户配置文件【英文标题】:Caching User Profile 【发布时间】:2017-06-17 00:32:53 【问题描述】:

我有一个类似于以下的结构:

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] 中?

谢谢。

【问题讨论】:

【参考方案1】:

您可以使用NSKeyedArchiver 来归档对象,然后使用NSKeyedUnarchiver 来取消归档对象,但它必须符合NSCopying 协议。

如果对象更广泛和复杂,您也可以使用CoreData 来保存对象。

如果类中没有太多变量,您可以简单地将变量名称和值放入字典中,并将字典保存为您的用户默认值。然后,您可以获取它们并使用保存在用户默认值中的字典值重建对象。但我只会在对象非常简单的情况下这样做(例如,具有几个 Ints 和/或 Strings 的类)。

最后,我建议使用CoreData 来持久化自定义对象。因为随着类开始变得越来越复杂,CoreData 将为您提供更好的性能和更快的可访问性。

【讨论】:

谢谢。是的,我肯定会选择 CoreData。感谢您的意见

以上是关于缓存用户配置文件的主要内容,如果未能解决你的问题,请参考以下文章

Apache配置静态缓存

Nginx服务优化------(隐藏版本+缓存+修改用户与组+日志分割+进程超时)

Nginx优化

linux 搭建缓存域名服务器

linux dns缓存域名服务器

nginx模型概念和配置文件结构