首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CloudKit -如何检索刚刚使用CKModifyRecordsOperation保存的记录的ckRecordID

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

Stack Overflow用户
提问于 2018-09-22 06:57:28
回答 1查看 247关注 0票数 3

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

  1. 将记录插入到CoreData。我将此记录标记为在CloudKit中未更新。万一我的CKModifyRecordsOperation失败了,我还可以在以后使用此标志将其更新为CloudKit。
  2. 使用CloudKit向CKModifyRecordsOperation插入记录。
  3. 尝试获取插入在步骤2中的记录的ckRecordID。(这是我的逻辑失败的地方,因为我不知道如何实现这一点)。我没有任何其他键(引用),希望只使用CKRecordID作为CoreData和CloudKit之间的引用。
  4. 将ckRecordID (在步骤3中获取)更新为CoreData。

解决上述问题的最佳逻辑是什么?谢谢你的时间和回应。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-22 09:02:12

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

若要将自定义记录ID分配给新记录,必须先创建CKRecordID对象。您需要知道该记录的预定名称和区域信息,这可能还需要创建一个CKRecordZone.ID对象。创建记录ID对象后,使用init(__recordType:recordID:)方法初始化新记录。

这是我的密码:

代码语言:javascript
复制
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)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52454304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档