【问题标题】:When is recordZoneWithIDWasPurgedBlock and recordZoneWithIDWasDeletedBlock called?什么时候调用 recordZoneWithIDWasPurgedBlock 和 recordZoneWithIDWasDeletedBlock?
【发布时间】:2020-05-04 17:50:53
【问题描述】:

CKFetchDatabaseChangesOperationrecordZoneWithIDWasPurgedBlockrecordZoneWithIDWasDeletedBlock 块。我的假设是,当用户删除与应用关联的所有 iCloud 数据时,会调用清除块,而当我手动删除区域时,则会调用删除块。

然而,在我使用 CloudKit 几周的经验中,两者都没有被调用过,我尝试了很多方法来触发任何一个块,但它从未发生过。相反,这些场景似乎是通过我后来制作的CKFetchRecordZoneChangesOperation 中的错误来处理的。如果该区域已被删除,我会收到 CKError.Code.changeTokenExpired,如果用户自己删除 iCloud 数据,我会收到 CKError.Code.userDeletedZone

通过错误处理这些场景对我来说很好且易于管理,但让我想知道这些块何时被调用?我是否应该像处理已删除/清除区域的错误一样处理它们?

【问题讨论】:

    标签: ios icloud cloudkit


    【解决方案1】:

    我自己的一个错误导致始终在应用启动时创建自定义区域,这显然永远不会触发删除块并使所有更改令牌无效。

    对于有类似问题的人,我有最令人沮丧的建议:检查您的代码!确保在获取数据库更改之前没有创建自定义区域。

    【讨论】:

      猜你喜欢
      • 2019-12-25
      • 2014-03-27
      • 2010-10-18
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多