在私有数据库的ckzone中查询共享记录不会返回任何内容

时间:2018-10-02 18:25:08

标签: ios swift cloudkit ckqueryoperation ckrecordzone

Swift 4.2 iOS 11.x

我一定错过了一些东西,因为这肯定可以工作。我得到了在自定义区域中查询私有数据库的代码。尽管我在那里有记录,但它什么也没返回。我为所有内容添加了索引!我还更改了权限中的角色,以便任何经过身份验证的用户都可以读取记录。

Image object

notificationMedia是一个全局静态变量,我也使用它来保存所述记录,因此它不会出错/不同。

2 个答案:

答案 0 :(得分:1)

设置zoneID中的operation,因为现在您正在查询默认区域。

let operation = CKQueryOperation(query: query)
operation.zoneID = zone2D.zoneID

答案 1 :(得分:0)

我想我找到了答案。我使用了不赞成使用的方法来保存记录。

let customRecord = CKRecord(recordType: remoteRecords.notificationMedia, zoneID: zone2D.zoneID)

我将其更改为此。

let customID = CKRecord.ID(recordName: remoteRecords.notificationMedia, zoneID: zone2D.zoneID)
let customRecord = CKRecord(recordType: remoteRecords.notificationMedia, recordID: customID)

现在,我在cloudKit数据库上的sharedDatabase中找到了我的记录,当我使用rmaddy所指出的区域集上方显示的方法时,我找到了记录。