recordZoneWithIDWasPurgedBlock和 recordZoneWithIDWasDeletedBlock什么时候被调用?

问题描述 投票:0回答:1

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

然而在我使用 CloudKit 几周的经验中,这两个块都没有被调用过,我尝试了许多方法来触发这两个块,但它从未发生过。相反,这些情况似乎是通过在 CKFetchRecordZoneChangesOperation 我后来使。我得到一个 CKError.Code.changeTokenExpired 如果区段已被删除,并且有 CKError.Code.userDeletedZone 如果用户自己删除iCloud数据。

对我来说,通过错误来处理这些情况是很好的,也是可以管理的,但我想知道这些块什么时候被调用过?我是否应该像处理deletepurged区的错误一样处理它们?

ios icloud cloudkit
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.