保存核心数据或保存后端数据库,应该先做?

时间:2015-11-13 04:11:16

标签: ios http core-data request alamofire

我是ios dev(或移动客户端开发人员)的新手。我有后端数据库,每次我的模型从客户端更新时都需要更新。我还将数据保存在核心数据中以进行离线/缓存。

我想知道您是否可以指导我更新核心数据和后端数据时的最佳做法。现在我做的是使用Alamofire发送http请求,然后在成功回调中我更新核心数据,然后客户端重新加载核心数据以显示更新已完成。但这似乎没有效率,因为我必须等到请求完成。另一方面,如果我在向用户显示结果后继续更新核心数据并在后台更新后端数据,请求可能会失败...

1 个答案:

答案 0 :(得分:0)

在每个对象上存储lastChangedlastSynchronised日期。每当您对同步对象进行更改时,lastChanged都会更新。来自服务器的成功响应更新lastSynchronised

现在,当你进行更改时,你知道它是否已经同步,所以它是否变脏或是对已经很脏的对象的另一次更新。

当您有互联网连接时,您可以找到所有脏对象并尝试同步它们。

唯一的复杂性是同步正在进行时应用的更新。你需要注意你没有一个应该是脏的但被标记为同步的对象。这可以通过在同步期间“锁定”对象来完成,也可以通过将服务器响应与成功对象进行比较来验证匹配来完成。