在我的应用中,我通过网络服务获取应用的菜单。它大约有423个记录很少变化。我需要的是在首次登录后将此记录缓存在应用程序中并使用缓存数据。如果菜单数据库中有任何更改,则只有它应该再次从Web服务刷新菜单内容。 我不太清楚我怎么能做到这一点。目前我将所有记录存储在一个菜单类数组中并直接使用,这非常耗时,因为我们一次又一次地对类似记录进行服务调用。我是iOS开发的新手,所以欢迎任何建议。
谢谢!
答案 0 :(得分:1)
将数据存储在NSUserDefaults
中的一个(如果这不常见,但是永久配置数据),或NSCache
(用于短暂数据),或CoreData
(对于永久性,性能 - 依赖数据)。
在应用启动时加载此缓存数据;如果缓存的数据不存在,请从您的Web服务/ API中检索它。
如果您在更改菜单内容后不立即关注数据是最新的,请使用类似Cache-Control
标题的内容来设置无效时间段details)。如果你做想要确保在新的远程版本可用时菜单更新,那么你需要设置一个版本控制系统,你的应用程序在那里进行API调用以检查版本菜单并根据需要进行更新。
示例场景:
NSUserDefaults
/ CoreData
/ NSCache
NSUserDefaults
/ CoreData
/ NSCache
。