今天,我开始研究CloudKit,我想知道是否可以将值附加到标记为list的字段上。
我现在做的方式是:
setValue(_: forKey:)
方法用在2中创建的新值完全覆盖旧值。我想知道是否有办法“盲目地” 将新值附加到列表字段,而不必先读取当前值并将新值附加到客户端。
>谢谢。
答案 0 :(得分:0)
如果您需要能够在不先获取现有记录的情况下追加记录,则可以考虑使用其他记录类型和CKReference
。
例如,让我们假设您当前的记录类型为 Company ,它的字段employees
的类型为String (List)
。您想在该列表中添加更多员工,而无需先知道列表中还有谁。
您可以使用类型name
的{{1}}字段和类型String
的{{1}}来创建 Employees 记录类型。然后,您只需创建所需的所有员工并设置其company
参考,即可将其与公司相关联。
您无需了解公司雇用的其他人员的任何其他信息,但是您仍然可以向CloudKit查询与特定公司相关的所有员工。
所有这些,首先获取要修改的记录,将值列表保存到数组,追加新值,然后将数组保存回CKReference
应该很容易。 :)祝你好运!