在我的应用程序中,我通过网络服务获取应用程序的菜单。它大约有 423 条很少更改的记录。我需要的是在第一次登录后将此记录缓存在应用程序中并使用缓存的数据。如果菜单数据库中有任何更改,那么它应该再次从 Web 服务刷新菜单内容。 我不太确定如何实现这一目标。目前我将所有记录存储在菜单类数组中并直接使用,这非常耗时,因为我们一次又一次地为类似记录打服务电话。我是 iOS 开发的新手,所以欢迎任何建议。
谢谢!
最佳答案
将数据存储在NSUserDefaults
(如果这是不常见但永久的配置数据)或NSCache
(用于临时数据)或CoreData
(用于永久的、性能相关的数据)。
在应用程序启动时加载此缓存数据;如果缓存的数据不存在,请从您的网络服务/API 中检索它。
如果您不关心更改菜单内容后数据是否立即更新,请使用类似 Cache-Control
header 的内容来设置失效时间段 ( details ) .如果您确实想要确保菜单在新的远程版本可用时立即更新,那么您需要设置一个版本控制系统,您的应用程序会在其中调用 API 来检查菜单并根据需要进行更新。
示例场景:
- 应用发布
- 从
NSUserDefaults
/CoreData
/NSCache
加载菜单内容 - 异步检查 API 的菜单版本
- 如果存在新版本的菜单,则异步下载并刷新菜单 View
- 将更新版本的菜单保存回
NSUserDefaults
/CoreData
/NSCache
。
关于ios - 在缓存 iOS Swift 中存储数据数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40445667/