-1

我有一个使用 Core Data 的应用程序,效果很好。我决定尝试使用 iCloud 在多个设备之间同步数据。我遵循将 NSPersistentContainer 更改为 NSPersistenCloudKitContainer 并添加 iCloud 功能、启用 CloudKit 和后台模式(远程通知)的基本步骤。通过这些很少的更改,数据在设备之间进行了应有的同步。看起来很简单。

但是,如果用户的 iCloud 存储空间已满,该应用程序将继续运行并在本地保存,但同步停止(显然)而不通知用户。

我知道这是一个 quotaExceeded 错误,但我将如何访问该错误然后处理它(以及一般处理 CKErrors)?

我觉得这个 NSPersistentCloudKitContainer 是一堵墙,我无法通过它来处理 CKErrors。我是初学者,所以也许我遗漏了一些明显的东西,但在网上找不到任何答案。

坚持 quotaExceeded 错误情况:

  • 第 1 步 - 发生 CKError.Code.quotaExceeded。
  • 第2步 - ???
  • 第 3 步 - 通知用户他们的 iCloud 存储空间已满。

第 2 步是什么样的?

4

1 回答 1

0

第 2 步 - 监控 NSPersistentCloudKitContainer.Event 的事件类型和更改。

在 ggruen 的答案(在他们的杂项部分)中找到了一个解决方案: NSPersistentCloudKitContainer: How to check if data is synced to CloudKit

从那里我能够使用该答案中的示例代码处理 CKErrors。

于 2021-09-06T13:43:22.400 回答