盲目地将值附加到CloudKit记录

问题描述 投票:0回答:1

今天我开始研究CloudKit,我想知道是否有办法将值附加到标记为列表的字段。

我现在这样做的方式是:

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

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

谢谢。

ios swift cloudkit
1个回答
0
投票

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

例如,让我们假装您当前的记录类型是公司,它有一个employees类型的String (List)字段。您希望在不知道列表中还有其他人的情况下将更多员工添加到该列表中。

您可以使用name类型的String字段和company类型的CKReference字段创建Employees记录类型。然后,您可以创建所有您想要的员工并设置他们的company参考,他们将与他们的公司相关联。

您不必了解公司雇用的其他人,但您仍然可以查询CloudKit以查找与特定公司相关的所有员工。

总而言之,首先获取要修改的记录,将值列表保存到数组,附加新值,然后将数组保存回CKRecord应该非常容易。 :) 祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.