我正在制作一个需要在离线和在线模式下运行的应用程序(在Swift中)。当它处于离线模式时,数据将本地存储在CoreData上。一旦检测到网络(在线),它就应该与服务器同步并更新后端数据库。 请帮助我。
答案 0 :(得分:6)
最近,我参与了离线和在线模式应用。
首先,您必须确定在离线模式下从每个实体添加,更新和删除哪条记录。
为了识别这一点,我在同步时需要的每个实体中添加了一个额外的属性 recordStatus 。
您的实体将如下所示。我创建了一个将处理所有recordStatus的ENUM。
我的解决方案是在Objective-C中,但我假设您可以轻松地将其转换为Swift。
typedef NS_ENUM(NSInteger, RecordStatus){
RecordStatusUnchanged = 0,
RecordStatusUpdated = 1,
RecordStatusAdded = 2,
RecordStatusRemoved = 3
};
在同步时....您只需要获取那些recordStatus != RecordStatusUnchanged
和该记录将被发送到服务器的记录。
我希望你听起来很清楚。