CloudKit CKQueryOperation没有获得所有记录

时间:2016-11-28 14:46:03

标签: swift cloudkit ckquery ckqueryoperation

在CloudKit中,RecordType超过100条记录。以下代码仅从这些代码获得11并且它们不是前11条记录,它们从记录的开头,中间和结尾随机选取。我无法在代码中弄错。

编辑:我通过将.reseltsLimit更改为5000来实现它!

let cloudContainer = CKContainer.default()
        let publicDatabase = cloudContainer.publicCloudDatabase
        let predicate = NSPredicate(value: true)
        let query = CKQuery(recordType: "Sijainti", predicate: predicate)

        var queryOperation = CKQueryOperation(query: query)
        queryOperation.queuePriority = .veryHigh
        queryOperation.resultsLimit = 50
        queryOperation.desiredKeys = ["Koordinaatit"]

        queryOperation.recordFetchedBlock = { (record) -> Void in
            self.sijainnitArray.append(record)
        }

        queryOperation.queryCompletionBlock = { (cursor, error) -> Void in

            if error != nil {
                print("Failed to get data")
                return
            }

            if cursor != nil {
                let newQueryOperation = CKQueryOperation(cursor: cursor!)
                newQueryOperation.cursor = cursor
                newQueryOperation.resultsLimit = queryOperation.resultsLimit
                newQueryOperation.queryCompletionBlock = queryOperation.queryCompletionBlock

                queryOperation = newQueryOperation

                publicDatabase.add(queryOperation)
                return

            }
        }

        publicDatabase.add(queryOperation)

0 个答案:

没有答案