将CloudKit RecordID保存到CoreData

时间:2015-12-21 23:55:26

标签: swift core-data cloudkit

我有一系列CloudKit记录,并希望将记录ID存储到核心数据中,因此当我再次查询云时,我不会记下相同的记录。我只是做一个不包含核心数据记录的NSpRedicate。

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

当前代码:

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

当前得到CKRecord为String的错误始终失败,我并不感到惊讶。需要能够保存recordID,然后从核心数据中获取recordID。

由于

2 个答案:

答案 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)