首页 文章

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

提问于
浏览
0

Swift 4.2 iOS 11.x.

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

public func cleanUpImages(zone2U:String) {
    var records2Delete:[CKRecord.ID] = []
    let zone2D = CKRecordZone(zoneName: zone2U)

    let predicate = NSPredicate(value: true)
    let query = CKQuery(recordType: remoteRecords.notificationMedia, predicate: predicate)
    let operation = CKQueryOperation(query: query)
    operation.recordFetchedBlock = { record in
        records2Delete.append(record.recordID)
    }
    operation.queryCompletionBlock = { cursor, error in
        print(records2Delete.count)
    }
    CKContainer.default().privateCloudDatabase.add(operation)

notificationMedia是一个全局静态var,我也用它来保存所述记录,所以它不能错误/不同 .

2 回答

  • 1

    我想我找到了答案 . 我正在使用一种弃用的方法来保存我的记录 .

    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指出的区域设置我找到了我的记录 .

  • 0

    设置 operationzoneID 因为您现在正在查询默认区域 .

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

相关问题