Получить большой набор с помощью CKQueryOperation и CKReference

У меня есть CKReference, прикрепленный к 4000 записям, связанным с одним CKRecord. У них нет действий (CKReferenceActionNone).
Я хочу иметь возможность получать все эти записи с помощью CKQueryOperation с помощью NSPredicate следующим образом:

CKReference * recordToMatch = [[выделение CKReference] initWithRecordID: действие backupRecord.recordID: CKReferenceActionNone]; NSPredicate * predicate = [NSPredicate predicateWithFormat: @ "parentRecord ==% @", recordToMatch];

Обычно, когда я использую CKQueryOperation, я могу зациклить его, используя CKQueryCursor, чтобы получить более 100 записей. Но используя CKReference, он работает сначала 100, а затем 200, но после этого курсор не возвращается.

Есть ли способ получить 4000 записей с помощью CKReference?

Большое спасибо!


person Ken Chan    schedule 17.06.2018    source источник


Ответы (1)


Я не уверен, является ли это точной причиной проблемы с курсором, но существует ограничение в 750 ссылок на запись.

Существует жесткое ограничение на количество ссылок, которые может иметь одна запись. Это ограничение составляет 750 ссылок. Любая попытка превысить этот предел приведет к ошибке сервера.

Вы можете увидеть это здесь: https://developer.apple.com/documentation/cloudkit/ckrecord/reference

person Clifton Labrum    schedule 19.06.2018
comment
Здесь это не должно иметь никакого эффекта. Для CKReferenceActionNone это ограничение не должно применяться. Я успешно протестировал тысячи записей, на которые есть ссылки. - person Brian M; 19.06.2018
comment
Я также успешно добавил тысячи ссылочных записей. Но их получение не сработало, так как я также использую CKShare. Таким образом, пользователь, получающий записи, на самом деле получает частную зону другого пользователя через CKShare - ›CKReference. - person Ken Chan; 03.07.2018