2017-08-01 40 views
2

我目前正在构建一个同步Core Data记录到CloudKit的解决方案。如何用zoneID和recordID初始化CKRecord?

我需要帮助来找出它我想用CKRecord做什么是可行的。

我检查了Apple CloudKit文档,试验并搜索了网页,但是我没有找到我想要的答案。

我想初始化CKRecord有zoneIDrecordID,我会在init方法中提供。
初始化器似乎迫使我在两者之间进行选择。 I 想要创建我自己的ZoneID(不使用默认值),并且设置recordID而不是自动生成。

会这样吗?

回答

3

您可以指定一个区域ID和记录ID,但你需要做的是在三个步骤:

首先,创建您的区域ID和用户CKRecordZoneID

let ckRecordZoneID = CKRecordZoneID(zoneName: "myZone", ownerName: CKOwnerDefaultName) 

然后你可以用你需要的记录ID创建一个CKRecordID并指定你的CKRecordZoneID

let ckRecordID = CKRecordID(recordName: recordIDString, zoneID: ckRecordZoneID) 

最后,你可以创建CKRecord使用记录ID:

let ckRecord = CKRecord(recordType: myRecordType, recordID: ckRecordID) 
+0

你可以看到我是如何做到这一点的位置:https://github.com/paulw11/Seam3/blob/master/Sources/Classes/NSManagedObject%2BCKRecord.swift – Paulw11