将值盲目附加到CloudKit记录

时间:2018-08-20 17:40:36

标签: ios swift cloudkit

今天,我开始研究CloudKit,我想知道是否可以将值附加到标记为list的字段上。

我现在做的方式是:

  1. 我查询记录,获取当前值列表。
  2. 我在本地为记录添加了一个值
  3. 我使用setValue(_: forKey:)方法用在2中创建的新值完全覆盖旧值。
  4. 我更新记录并再次保存

我想知道是否有办法“盲目地” 将新值附加到列表字段,而不必先读取当前值并将新值附加到客户端。

>

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您需要能够在不先获取现有记录的情况下追加记录,则可以考虑使用其他记录类型和CKReference

例如,让我们假设您当前的记录类型为 Company ,它的字段employees的类型为String (List)。您想在该列表中添加更多员工,而无需先知道列表中还有谁。

您可以使用类型name的{​​{1}}字段和类型String的{​​{1}}来创建 Employees 记录类型。然后,您只需创建所需的所有员工并设置其company参考,即可将其与公司相关联。

您无需了解公司雇用的其他人员的任何其他信息,但是您仍然可以向CloudKit查询与特定公司相关的所有员工。

所有这些,首先获取要修改的记录,将值列表保存到数组,追加新值,然后将数组保存回CKReference应该很容易。 :)祝你好运!