2014-11-25 4 views
2

Использование CloudKit, как я могу получить результаты в партиях?CloudKit Batch Fetches?

Я знаю, что результат выборки по умолчанию равен 100. Итак, кто же я потом получаю 100 результатов?

Спасибо.

ответ

2

Число записей, возвращаемых CloudKit, не фиксировано. CloudKit имеет механизм для определения количества возвращаемых записей. Похоже, что он в настоящее время 100, но он может измениться в зависимости от текущей нагрузки на Cloudkit. Можно установить это фиксированное число в объекте CKQueryOperation. Значение по умолчанию:

operation.resultsLimit = CKQueryOperationMaximumResults; 

В Документации для этого свойства говорит: When using that value, the server chooses a limit that aims to provide an optimal number of results that returns as many records as possible while minimizing delays in receiving those records. However, if you know that you want to process a fixed number of results, change the value of this property accordingly.

CKQueryOperation возвращает курсор в queryCompletionBlock, которые затем могут быть использованы для выполнения в другой CKQueryOperation принести следующий блок.

+0

Gotcha! Спасибо Эдвину, я не понимал, что курсоры - это то, что мне нужно было посмотреть, теперь имеет гораздо больше смысла. –

+0

Я нашел сегодня, что, хотя курсор действительно позволяет вам получать больше записей в партиях по 100, существует верхний предел в 10 000 для того, сколько из них извлечено. Я не знаю, как выйти за рамки этого. Мне нужно иметь возможность перемещать все записи в таблице (и их много). Я попытался установить предел результата (скажем) 20 000, однако это привело к результатам с различным количеством записей, обычно около 101. – PKCLsoft