gpt4 book ai didi

CloudKit - 如何检索刚刚使用 CKModifyRecordsOperation 保存的记录的 ckRecordID

转载 作者:行者123 更新时间:2023-12-03 06:24:13 31 4
gpt4 key购买 nike

我正在使用 CoreData 在 CloudKit 中保存记录的本地缓存。保存新记录时,我执行以下操作:

  1. 将记录插入 CoreData。我将此记录标记为未在 CloudKit 中更新。以防万一我的 CKModifyRecordsOperation 失败,我仍然可以稍后使用此标志将其更新到 CloudKit。
  2. 使用 CKModifyRecordsOperation 将记录插入到 CloudKit。
  3. 尝试获取步骤 #2 中插入的记录的 ckRecordID。 (这就是我的逻辑失败的地方,因为我不确定如何实现这一目标)。我没有任何其他 key (引用),并且希望仅使用 CKRecordID 作为 CoreData 和 CloudKit 之间的引用。
  4. 将 ckRecordID(在第 3 步中获取)更新为 CoreData。

解决上述问题的最佳逻辑是什么?感谢您的宝贵时间和回复。

最佳答案

我通过在本地创建 CKRecordID 并在 CloudKit 中更新它来解决这个问题。以下是苹果文档中的引用:

To assign a custom record ID to a new record, you must create the CKRecordID object first. You need to know the intended name and zone information for that record, which might also require creating a CKRecordZone.ID object. After creating the record ID object, initialize your new record using its init(__recordType:recordID:) method.

这是我的代码:

let zone = CKRecordZone(zoneName: Schema.Zone.group)
let uuid = NSUUID()
let recordType = Schema.RecordType.group
let recordName = uuid.uuidString
let recordID = CKRecordID(recordName: recordName, zoneID: zone.zoneID)
let newRecord = CKRecord(recordType: recordType, recordID: recordID)

关于CloudKit - 如何检索刚刚使用 CKModifyRecordsOperation 保存的记录的 ckRecordID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52454304/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com