我有一个使用Core Data和iCloud的应用程序:事务日志位于用户无处不在的容器中,也是数据库存储文件,位于.nosync文件夹中。
通常没有问题,但有时应用程序崩溃“应用程序已被锁定的系统文件暂停”。我注意到当应用程序获得iCloud NSPersistentStoreDidImportUbiquitousContentChangesNotification
然后应用程序更新其数据库时会发生这种情况。
使用iCloud& amp;的最佳做法是什么?核心数据?我没有看到Apple doc中的任何建议,比如在输入背景时关闭数据库或删除iCloud通知的观察者 - 无论如何,Apple声称即使应用程序没有运行,iCloud基础设施也会不断更新数据,所以我猜我需要保持观察者。
PS:我正在尝试从崩溃报告中添加一些信息,但StackOverflow因为“格式错误”而不想接受它。
答案 0 :(得分:1)
当您尝试使用iCloud和Core Data时,随机崩溃会发生很多事情。
我能让它工作的唯一方法是模仿这个例子的实现:https://github.com/alekseyn/iCloudStoreManager
我使用了提供的UbiquityStoreManager类(在我的情况下适用于非ARC)并调整了AppDelegate / ViewControllers中所有与iCloud相关的和与Core Data相关的代码。
值得重新考虑因素。