ios - iPad 处于离线状态,日期设置为 2030 年,用户保存实体,现在使用基于时间戳的同步怎么办?

标签 ios database core-data sync theory

这个问题只是理论上的,真的是一个罕见的用例,我只是想知道。

我有一个客户端-服务器设置(CoreData、JSON、AFNetworking 等),其中每个帐户都有多个读写用户。

因此,我使用 _lastModificationDate 为每个数据库条目添加时间戳,以便以后能够同步/合并更改。

因此其中一位用户离线,将日期设置为 2030 年(关闭“自动设置”)。保存 - 所以时间戳为 2030 - 某个实体,然后上线。

20 年过去了,用户没有改变任何东西。尽管如此,该用户的每次同步都会覆盖数据库中的数据,直到我们过了 2030 年。

我该如何克服这个问题?

最佳答案

您可以设置一个新字段 modifiedOffline( bool 值),或者,当他离线时,在每次修改时设置 _lastModificationDate +1。但是,在这两种情况下,来自服务器的更新将/可能会覆盖本地更新,即使它们更新。

另一种解决方案是:在用户上线后,应用程序会将 _lastModificationDate 刷新为最大当前日期(我假设您是从服务器获取的)。这样,较新的修改将正常工作。

关于ios - iPad 处于离线状态,日期设置为 2030 年,用户保存实体,现在使用基于时间戳的同步怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21332921/

相关文章:

ios - 如何从 CALayer 中的图像中减去形状?

c++ - 我应该使用哪个数据库来存储记录,我应该如何使用它?

objective-c - 无法从对象创建 BOOL

使用一对一关系时, cocoa 核心数据应用程序在插入时崩溃

ios - 更改 UIDatePicker 所选日期文本颜色以实现深色模式 (iOS 13)

ios - 分页 UIScrollView 不使用 Storyboard 滚动

ios - 如何在 UITableView 中按字母顺序对字典数组进行排序和分类,作为 swift 3.0 中的部分

database - 冗余关系?

python - 无法使用灯泡对 Titan GraphDB/Rexster 进行编程

iphone - NSPersistentStoreCoordinator 出现 nil 模型错误?