Запрос диапазона данных с помощью CloudKit в iOS

#ios #cloudkit #swift5

#iOS #cloudkit #swift5

Вопрос:

Я новичок в CloudKit и swift. У меня есть запрос, который успешно извлекает все мои записи и сортирует их по дате создания (ниже). Тем не менее, я хочу иметь возможность извлекать первые 10 записей с помощью CreationDate. Затем есть кнопка для загрузки следующих 10 и так далее. Я занимался некоторыми поисками, но ничего не добился. Будем признательны за любую помощь!

         stream = [CKRecord]()
        let publicData = CKContainer.default().publicCloudDatabase
        let query = CKQuery(recordType: "myRecords", predicate: NSPredicate(format: "TRUEPREDICATE", argumentArray: nil))
        query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
        publicData.perform(query, inZoneWith: nil) { (results:[CKRecord]?, error:Error?) -> Void in
        if let stream = results {
            self.stream = stream
            DispatchQueue.global(qos: .background).async {
                DispatchQueue.main.async {
                    for record in stream {
//                        Do stuff here
                        }
                    }
                }
            }
        }
    }
  

Ответ №1:

CKQuery обладает свойством resultsLimit .

Вы можете указать количество записей, которые будут возвращены.

Редактировать:

Документация Apple

Комментарии:

1. Спасибо за ответ! У вас есть ссылка на пример того, как это используется?

2. Я отредактировал свой ответ, добавив ссылку на документацию Apple, а также на руководство, которое, я уверен, вы можете найти в Google.