如何使用CloudKit播种数据?

时间:2020-02-14 05:45:52

标签: core-data cloudkit

我需要在每个用户启动应用程序时在CloudKit中为他们创建一些记录。

我不能只编写创建记录的种子函数。因为当用户在两个设备中启动应用程序时,他们将各自编写自己的种子记录。

我想要的是让第一个写入CloudKit的设备创建记录。然后,第二个设备将仅更新那些记录的值,而无需重新创建它们。

我该如何实现?

1 个答案:

答案 0 :(得分:0)

您可以使用一些选项,但是在尝试同时编写两者时,所有这些选项都可能导致争用条件,但是实际发生的可能性很小。

无论采用哪种方法,都应始终采取 query 的立场。检查记录是否存在,必要时对其进行更新,然后写入新的/更新的值。

因此,在您的示例中:

  • 第一个应用将查询记录,并创建记录-因为不存在记录。
  • 要启动的第二个应用将查询记录,找到它,然后不执行任何操作,因为该记录存在。

CloudKit中的每个记录都维护一个modificationDate。因此,如果您真的担心覆盖不应该被覆盖的数据,那么可以添加注意查询和日期检查以确定是否应该进行写操作。