CKQueryOperation получил ошибку "Нет операций, присутствующих в запросе" случайно
Я пытаюсь получить некоторые записи из Cloud Server с фрагментом кода ниже. Он возвращает записи без каких-либо ошибок в большинстве случаев:
CKQuery * query = [[CKQuery alloc] initWithRecordType:@"MyTable"
predicate:[NSPredicate predicateWithFormat:@"accountID = 1"]];
CKQueryOperation * recordFetchOperation = [[CKQueryOperation alloc] initWithQuery:query];
recordFetchOperation.database = [[CKContainer defaultContainer] privateCloudDatabase];
recordFetchOperation.recordFetchedBlock = ^(CKRecord *record) {
// get records succeed some times
};
recordFetchOperation.queryCompletionBlock = ^(CKQueryCursor *cursor, NSError *operationError) {
if (operationError) [self _handleError:operationError];
};
... // some other operations
NSOperationQueue * queue = [[NSOperationQueue alloc] init];
[queue addOperations:@[recordFetchOperation, ...]
waitUntilFinished:NO];
Но иногда возвращается ошибка:
{
NSDebugDescription = "CKInternalErrorDomain: 1009";
NSLocalizedDescription = "В запросе нет операций";
NSUnderlyingError = "Ошибка домена =CKInternalErrorDomain Code=1009 \" В запросе нет операций \" UserInfo={NSLocalizedDescription= В запросе нет операций}";
}
Я проверил код ошибки, это CKErrorInvalidArguments
который, как сказал док
Неверный клиентский запрос (неверный граф записей, неверный предикат)
Я понятия не имею, как возникает эта ошибка и как ее обработать, в отличие CKErrorNetworkUnavailable
ошибка, не имеет CKErrorRetryAfterKey
значение в error.userInfo
для меня, чтобы отправить запрос через определенный промежуток времени.
Кстати, когда я получил эту ошибку, все мои операции будут иметь эту ошибку без какой-либо записи возвращено.