今天我开始研究CloudKit,我想知道是否有办法将值附加到标记为列表的字段。
我现在这样做的方式是:
setValue(_: forKey:)
方法用我在2中创建的新值完全写入旧值。我想知道是否有办法“盲目地”将新值附加到列表字段,而不必先读取当前值并在客户端上附加新值。
谢谢。
如果您需要能够在不先获取现有记录的情况下附加记录,则可以考虑使用其他记录类型和CKReference
。
例如,让我们假装您当前的记录类型是公司,它有一个employees
类型的String (List)
字段。您希望在不知道列表中还有其他人的情况下将更多员工添加到该列表中。
您可以使用name
类型的String
字段和company
类型的CKReference
字段创建Employees记录类型。然后,您可以创建所有您想要的员工并设置他们的company
参考,他们将与他们的公司相关联。
您不必了解公司雇用的其他人,但您仍然可以查询CloudKit以查找与特定公司相关的所有员工。
总而言之,首先获取要修改的记录,将值列表保存到数组,附加新值,然后将数组保存回CKRecord
应该非常容易。 :) 祝好运!