【发布时间】:2020-05-04 17:50:53
【问题描述】:
CKFetchDatabaseChangesOperation 有 recordZoneWithIDWasPurgedBlock 和 recordZoneWithIDWasDeletedBlock 块。我的假设是,当用户删除与应用关联的所有 iCloud 数据时,会调用清除块,而当我手动删除区域时,则会调用删除块。
然而,在我使用 CloudKit 几周的经验中,两者都没有被调用过,我尝试了很多方法来触发任何一个块,但它从未发生过。相反,这些场景似乎是通过我后来制作的CKFetchRecordZoneChangesOperation 中的错误来处理的。如果该区域已被删除,我会收到 CKError.Code.changeTokenExpired,如果用户自己删除 iCloud 数据,我会收到 CKError.Code.userDeletedZone。
通过错误处理这些场景对我来说很好且易于管理,但让我想知道这些块何时被调用?我是否应该像处理已删除/清除区域的错误一样处理它们?
【问题讨论】: