CloudKit - частичный сбой и лимит
Резюме
В CloudKit
хотел бы знать все возможное CKError.Code
возможно для .partialFailure
,
В настоящее время я занимаюсь только следующим CKError.Code
для частичного отказа.
Предположения:
.serverRecordChanged
// Применяется только при сохранении записей.zoneNotFound
// Применимо только при получении зон.unknownItem
// Применимо только при получении предметов.batchRequestFailed
// Применяется только при сохранении записей в пользовательской зоне
- Технически частичный сбой может выкинуть любой
CKError
, но логически частичный сбой - это сбой на уровне элемента, а не на уровне операции, поэтомуpartialFailure
не будет содержать ошибки уровня операции, такие какnetworkUnavailable
/badContainer
/badDatabase
, - Пожалуйста, обратитесь, чтобы увидеть, как
partialFailure
обрабатывается - https://developer.apple.com/library/content/samplecode/CloudKitShare/Introduction/Intro.html (поискhandlePartialError
) -
Вопросы:
За
partialFailure
Вышеуказанные единственно возможные коды ошибок?Есть ошибки
serverRecordChanged
,zoneNotFound
,unknownItem
возможно только как частьpartialFailure
ошибка? (Не содержит ли ошибка, возвращаемая обработчиком завершенияserverRecordChanged
,zoneNotFound
,unknownItem
но толькоpartialFailure
ошибка может содержать их?)Правильны ли мои комментарии относительно того, когда каждая из вышеперечисленных ошибок верна? (Применимо только пока...)
Является
limitExceeded
ошибка брошена дляCKFetch
операции иCKModify
операции или это применимо только дляCKModify
операции?
1 ответ
Частичный сбой означает, что некоторые из CKRecords, участвующих в операциях, потерпели неудачу, и, возможно, другие завершили без проблем. Ошибка может быть одна из структуры CKError
Нет. Эти ошибки могут произойти в операции выборки CKDatabase.save или CKDatadabe.
+ -;-)
limitExceeded может произойти при сохранении или изменении. Для извлечения Это сервер iCloud, который информирует клиентов (вас), когда больше записей ожидает получения. Например, CKFetchNotificationChangesOperation имеет свойство moreComing, которое указывает, что вам нужно выполнить другую операцию выборки.