我有一个要求,即本地创建的事件必须与服务器同步。为了简单地解释这一点,让我们考虑一下这个场景,离线应用程序A和B中发生了两个事件,A>B。在这种情况下,B只在A完成同步时才同步。
为了解决这个问题,我必须在我的实体中有一个额外的属性来识别哪个是先前创建的。该属性可以保持创建的时间或任何增量数字。
在这里,我只面临一些澄清
解决方案:1基于创建时间的
如果我在该属性中保留了创建的时间,那么对于下面的场景是否合适?
假设我今天在活动“A”上创建,然后我将设备的日期更改为前一天的日期,然后我将返回我的应用程序并创建另一个事件“B”。在这里哪一个会更早?如果应用程序说“B”是最近插入的对象,那么没有问题,我可以坚持这个解决方案本身,否则我需要移动到其他解决方案。是否有任何优化的解决方案来通过保持创建的时间来找到插入的顺序?
解决方案:基于增量数的2
我相信核心数据不提供任何自动增量id,所以我们需要手动维护它。如果是这样的话,维持最大分配价值的更好方法是什么?如果我将最大赋值存储在NSUserDefaults中会好吗?每当应用程序创建事件时,将从NSUserDefaults获取值,并添加+1,然后我将为事件分配最终值。这种方法合适吗?否则,如果你知道更好的解决方案,请指导我。
发布于 2015-08-18 14:39:13
核心数据中没有内置的自动递增编号,因为这更多地是业务逻辑特定项。然而,这并不难执行。
可以存储持久性存储的元数据中使用的最后一个数字。在插入过程中,只需增加这个数字,然后将其添加到每个实体中。插入完成后,更新元数据中的数字。
这就是核心数据如何为objectID更新自己的插入号。
https://stackoverflow.com/questions/32074060
复制相似问题