ios – CloudKit – partialFailure和limitExceeded

摘要

在CloudKit中,我们想知道.partialFailure可能存在的所有可能的CKError.Code.

目前我只处理以下CKError.Code for partialFailure.

假设:

> .serverRecordChanged //仅在保存记录时适用
> .zoneNotFound //仅在获取区域时适用
> .unknownItem //仅在获取项目时适用
> .batchRequestFailed //仅在自定义区域中保存记录时适用

>从技术上讲,partialFailure可以抛出任何CKError,但逻辑上partialFailure在项目级别而不是在操作级别失败,因此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错误可能包含它们?)
>我的评论是关于
当上述每个错误都正确的时候? (仅适用于……)
> CKFetch操作和CKModify操作是抛出limitExceeded错误还是仅它
适用于CKModify运营?

最佳答案 >部分失败意味着某些操作中涉及的CKRecords失败了,也许其他人完成没有问题.错误可能来自CKError结构

>不会.这些错误可能发生在CKDatabase.save或CKDatadabe获取操作中.

> – 😉

> limitExceeded可以在保存或修改时发生.对于获取它的iCloud服务器,它会在等待获取更多记录时通知客户端(您).例如,
CKFetchNotificationChangesOperation具有属性
moreComing,表示您需要进行另一次提取操作.

点赞