我写过很多与后端通信的iOS应用程序。几乎每次,我都使用HTTP缓存来缓存查询并将响应数据(JSON)解析为Objective-C对象。对于这个新项目,我想知道核心数据方法是否有意义。
这就是我的想法:
iOS客户端向服务器发出请求,并将对象从JSON解析为CoreData模型。
每当我需要一个新对象,而不是直接获取服务器时,我会解析CoreData以查看我是否已经发出了该请求。如果该对象存在且尚未过期,则使用获取的对象。
但是,如果对象不存在或已过期(这里将应用某些缓存逻辑),我将从服务器获取对象并相应地更新CoreData。
我认为拥有这样的架构可以帮助实现以下目标: 1.避免对后端进行不必要的查询 2.允许完全支持离线浏览(您仍然可以使用DataCore的RDBMS进行关系查询)
现在这是我对神的问题:
答案 0 :(得分:93)
答案 1 :(得分:5)
有一个解决方案,我无法尝试,因为我在我的项目中太远,无法重构我的应用程序的服务器缓存方面,但它应该对那些仍在寻找答案的人有用:
它确实完成了我所做的事情,但它比我所做的更抽象。非常有见地的东西。我希望它有所帮助!
答案 2 :(得分:5)
我认为这是一种有效的方法。我做了很多次。棘手的部分是当你需要处理同步时:如果客户端和服务器都可以同时改变事物。您几乎总是需要特定于应用程序的合并逻辑。