My CloudKit query returns only 300 records, when I have got around 500. This is my code.
func getCloudKitMoviesData(viewController: UIViewController) {
let cloudContainer = CKContainer.defaultContainer()
let publicDatabase = cloudContainer.publicCloudDatabase
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Movies", predicate: predicate)
let queryOperation = CKQueryOperation(query: query)
queryOperation.desiredKeys = ["Title", "Rating", "Genre"]
queryOperation.queuePriority = .VeryHigh
queryOperation.recordFetchedBlock = {
(record: CKRecord!) -> Void in
if let movieRecord = record {
movies.append(movieRecord)
}
}
queryOperation.queryCompletionBlock = {
(cursor:CKQueryCursor?, error: NSError?) -> Void in
if cursor != nil {
let newOperation = CKQueryOperation(cursor: cursor!)
newOperation.recordFetchedBlock = {
(record: CKRecord!) -> Void in
if let movieRecord = record {
movies.append(movieRecord)
}
}
newOperation.queryCompletionBlock = queryOperation.queryCompletionBlock
publicDatabase.addOperation(newOperation)
}
}
publicDatabase.addOperation(queryOperation)
}