CloudKit - частичный сбой и лимит

Резюме

В CloudKit хотел бы знать все возможное CKError.Code возможно для .partialFailure,

В настоящее время я занимаюсь только следующим CKError.Code для частичного отказа.

Предположения:

  1. .serverRecordChanged // Применяется только при сохранении записей
  2. .zoneNotFound // Применимо только при получении зон
  3. .unknownItem // Применимо только при получении предметов
  4. .batchRequestFailed // Применяется только при сохранении записей в пользовательской зоне

  • Технически частичный сбой может выкинуть любой CKError, но логически частичный сбой - это сбой на уровне элемента, а не на уровне операции, поэтому partialFailure не будет содержать ошибки уровня операции, такие как networkUnavailable / badContainer / badDatabase,
  • Пожалуйста, обратитесь, чтобы увидеть, как partialFailure обрабатывается - https://developer.apple.com/library/content/samplecode/CloudKitShare/Introduction/Intro.html (поиск handlePartialError) -

Вопросы:

  1. За partialFailureВышеуказанные единственно возможные коды ошибок?

  2. Есть ошибки serverRecordChanged, zoneNotFound,unknownItem возможно только как часть partialFailure ошибка? (Не содержит ли ошибка, возвращаемая обработчиком завершенияserverRecordChanged, zoneNotFound, unknownItem но толькоpartialFailure ошибка может содержать их?)

  3. Правильны ли мои комментарии относительно того, когда каждая из вышеперечисленных ошибок верна? (Применимо только пока...)

  4. Является limitExceeded ошибка брошена для CKFetch операции и CKModify операции или это применимо только для CKModify операции?

1 ответ

  1. Частичный сбой означает, что некоторые из CKRecords, участвующих в операциях, потерпели неудачу, и, возможно, другие завершили без проблем. Ошибка может быть одна из структуры CKError

  2. Нет. Эти ошибки могут произойти в операции выборки CKDatabase.save или CKDatadabe.

  3. + -;-)

  4. limitExceeded может произойти при сохранении или изменении. Для извлечения Это сервер iCloud, который информирует клиентов (вас), когда больше записей ожидает получения. Например, CKFetchNotificationChangesOperation имеет свойство moreComing, которое указывает, что вам нужно выполнить другую операцию выборки.

Другие вопросы по тегам