如何在swift中同步coredata和webservices?

时间:2016-08-11 06:22:55

标签: swift swift2

我正在制作一个需要在离线和在线模式下运行的应用程序(在Swift中)。当它处于离线模式时,数据将本地存储在CoreData上。一旦检测到网络(在线),它就应该与服务器同步并更新后端数据库。 请帮助我。

1 个答案:

答案 0 :(得分:6)

最近,我参与了离线和在线模式应用。

首先,您必须确定在离线模式下从每个实体添加,更新和删除哪条记录。

为了识别这一点,我在同步时需要的每个实体中添加了一个额外的属性 recordStatus

  

您的实体将如下所示。我创建了一个将处理所有recordStatus的ENUM。

Your entity will look like

我的解决方案是在Objective-C中,但我假设您可以轻松地将其转换为Swift。

typedef NS_ENUM(NSInteger, RecordStatus){

    RecordStatusUnchanged = 0,
    RecordStatusUpdated   = 1,
    RecordStatusAdded     = 2,
    RecordStatusRemoved   = 3
};

在同步时....您只需要获取那些recordStatus != RecordStatusUnchanged和该记录将被发送到服务器的记录。

我希望你听起来很清楚。