4

我有一个使用 Core Data 和 iCloud 的应用程序:事务日志在用户无处不在的容器、数据库存储文件以及 .nosync 文件夹中。

通常没有问题,但有时应用程序崩溃并显示“应用程序因锁定系统文件而暂停”。我注意到当应用程序获取 iCloudNSPersistentStoreDidImportUbiquitousContentChangesNotification然后应用程序更新其数据库时会发生这种情况。

使用 iCloud 和 Core Data 的最佳做法是什么?我没有在 Apple 文档中看到任何建议,例如在进入后台时关闭数据库或删除 iCloud 通知的观察者——无论如何,Apple 声称即使应用程序没有运行,iCloud 基础设施也会不断更新数据,所以我想我需要保持观察者。

PS:我正在尝试从崩溃报告中添加一些信息,但由于“格式错误”,StackOverflow 不想接受它。

4

1 回答 1

1

当您尝试使用 iCloud 和 Core Data 时,应用程序随机崩溃是经常发生的事情。

我可以让它工作的唯一方法是模仿这个例子的实现:https ://github.com/alekseyn/iCloudStoreManager

我使用了提供的 UbiquityStoreManager 类(在我的情况下适用于非 ARC),并在 AppDelegate/ViewControllers 中调整了所有与 iCloud 相关和与核心数据相关的代码。

重构努力是值得的。

于 2013-01-09T10:55:57.547 回答