盲目地将值附加到 CloudKit 记录
Blindly append value to CloudKit record
今天我开始研究 CloudKit,我想知道是否有办法将值附加到标记为列表的字段。
我现在的做法是:
- 我查询记录,得到当前值列表。
- 我在本地给记录加了一个值
- 我使用
setValue(_: forKey:)
的方法,用我在2中创建的新值完全覆盖了旧值。
- 我更新记录再保存
我想知道是否有办法 "blindly" 将新值附加到列表字段,而不必先读取当前值再附加新值对客户端的价值。
谢谢。
如果您需要能够在不首先获取现有记录的情况下追加记录,您可以考虑使用不同的记录类型和 CKReference
。
例如,假设您当前的记录类型是 Company,它有一个字段 employees
,类型是 String (List)
。您希望在不知道列表中还有谁的情况下向该列表添加更多员工。
您可以使用 name
类型 String
字段和 company
类型 [=10] 字段创建 Employees 记录类型=].然后,您可以随心所欲地创建员工并设置他们的 company
参考,他们将与他们的公司相关联。
您不必知道公司还雇用了谁,但您仍然可以查询 CloudKit 与特定公司关联的所有员工。
综上所述,首先获取您正在修改的记录、将值列表保存到数组、追加新值并将数组保存回 CKRecord
应该非常容易。 :) 祝你好运!
今天我开始研究 CloudKit,我想知道是否有办法将值附加到标记为列表的字段。
我现在的做法是:
- 我查询记录,得到当前值列表。
- 我在本地给记录加了一个值
- 我使用
setValue(_: forKey:)
的方法,用我在2中创建的新值完全覆盖了旧值。 - 我更新记录再保存
我想知道是否有办法 "blindly" 将新值附加到列表字段,而不必先读取当前值再附加新值对客户端的价值。
谢谢。
如果您需要能够在不首先获取现有记录的情况下追加记录,您可以考虑使用不同的记录类型和 CKReference
。
例如,假设您当前的记录类型是 Company,它有一个字段 employees
,类型是 String (List)
。您希望在不知道列表中还有谁的情况下向该列表添加更多员工。
您可以使用 name
类型 String
字段和 company
类型 [=10] 字段创建 Employees 记录类型=].然后,您可以随心所欲地创建员工并设置他们的 company
参考,他们将与他们的公司相关联。
您不必知道公司还雇用了谁,但您仍然可以查询 CloudKit 与特定公司关联的所有员工。
综上所述,首先获取您正在修改的记录、将值列表保存到数组、追加新值并将数组保存回 CKRecord
应该非常容易。 :) 祝你好运!