我有一系列CloudKit记录,并希望将记录ID存储到核心数据中,因此当我再次查询云时,我不会记下相同的记录。我只是做一个不包含核心数据记录的NSpRedicate。
但是,如果出现错误,如何将记录ID保存到核心数据..认为这是类型问题。
当前代码:
coreData.recordRecordID = self.cloudKitRecords[0].recordID as? String
当前得到CKRecord为String的错误始终失败,我并不感到惊讶。需要能够保存recordID,然后从核心数据中获取recordID。
由于
答案 0 :(得分:8)
import Foundation
import CoreData
import CloudKit
class Entity: NSManagedObject {
// MARK: - Properties
@NSManaged var recordID: CKRecordID?
// Additional properties here
}
然后将核心数据属性类型更改为Transformable
而不是String
。
答案 1 :(得分:6)
你可以得到这样的id:
coreData.recordRecordID = self.cloudKitRecords[0].recordID.recordName
然后它将是一个字符串。 如果你想从中创建一个CKRecordID,那么你可以使用
创建一个var myID = = CKRecordID(recordName: yourStringID)