将 CloudKit RecordID 保存到 CoreData

Savings CloudKit RecordID to CoreData

我有一个 CloudKit 记录数组,想将记录 ID 存储到核心数据中,这样当我再次查询云时,我不会提取相同的记录。我只是做一个 NSpRedicate 不包含来自核心数据的记录。

但是,出现错误,我如何将记录 ID 保存到核心数据中。认为这是类型问题。

当前代码:

 coreData.recordRecordID = self.cloudKitRecords[0].recordID as? String

当前收到 CKRecord as String 总是失败的错误,对此我并不感到惊讶。需要能够保存 recordID 然后从核心数据中获取 recordID。

谢谢

你可以这样获取id:

coreData.recordRecordID = self.cloudKitRecords[0].recordID.recordName

它将是一个字符串。 如果你想从中制作一个 CKRecordID,那么你可以使用

创建一个
var myID = = CKRecordID(recordName: yourStringID)
import Foundation

import CoreData

import CloudKit

class Entity: NSManagedObject {

// MARK: - Properties

@NSManaged var recordID: CKRecordID?

// Additional properties here

}

然后将 Core Data 属性类型更改为 Transformable 而不是 String