如何用zoneID和recordID初始化CKRecord?

Wis*_*min 6 ios cloudkit

我目前正在构建一个同步Core Data记录的解决方案CloudKit.

我需要帮助才能找到我想要做的事情CKRecord是可行的.

我检查过Apple CloudKit文档,在网上进行实验和搜索,但是我找不到我想要的那种答案.

我想初始化CKRecord,zoneID并且recordID我将提供init方法.
初始化器似乎迫使我在两者之间做出选择.我想创建自己的ZoneID(不使用默认值),并设置 recordID而不是自动生成它.

这可能吗?

Pau*_*w11 12

您既可以指定区域ID,也可以指定记录ID,但需要分三步完成:

首先,CKRecordZoneID使用您的区域ID和用户创建一个:

let ckRecordZoneID = CKRecordZoneID(zoneName: "myZone", ownerName: CKOwnerDefaultName)
Run Code Online (Sandbox Code Playgroud)

然后,您可以CKRecordID使用所需的记录ID 创建一个并指定CKRecordZoneID:

let ckRecordID = CKRecordID(recordName: recordIDString, zoneID: ckRecordZoneID)
Run Code Online (Sandbox Code Playgroud)

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

let ckRecord = CKRecord(recordType: myRecordType, recordID: ckRecordID)
Run Code Online (Sandbox Code Playgroud)