Is there any limit to the result of a query to Cloudkit private default zone? I have no clue why I only receive first 100 records with the following query:<
The simplest example for Swift:
func fetchServices(completion: ErrorHandler? = nil) {
var records = [CKRecord]()
let query = CKQuery(recordType: "Service", predicate: NSPredicate(value: true))
let queryOperation = CKQueryOperation(query: query)
queryOperation.recordFetchedBlock = { record in
records.append(record)
}
queryOperation.queryCompletionBlock = { cursor, error in
self.fetchServices(with: cursor, error: error, records: records, completion: completion)
}
database.add(queryOperation)
}
private func fetchServices(with cursor: CKQueryCursor?, error: Swift.Error?, records: [CKRecord], completion: ErrorHandler? = nil) {
var currentRecords = records
if let cursor = cursor, error == nil {
let queryOperation = CKQueryOperation(cursor: cursor)
queryOperation.recordFetchedBlock = { record in
currentRecords.append(record)
}
queryOperation.queryCompletionBlock = { cursor, error in
self.fetchServices(with: cursor, error: error, records: currentRecords, completion: completion)
}
database.add(queryOperation)
} else {
parseAndSaveServices(with: records, completion: completion)
}
}