我有一个 ios 应用程序,它在 ios 5 上没有以这种方式崩溃,现在在 4 或 5 个 bg/fg 周期后启动时,它在 ios 6 上一直崩溃。我已将问题追溯到我对 ALAssetsLibrary enumerateGroupsWithTypes 的调用(应用程序在启动时会同步到底层照片库)。对 enumerateGroupsWithTypes 的调用是在通过调度队列调用的后台线程中进行的,因此即使用户在完成之前将应用程序发送到 bg,同步代码也可以完成。我收到的崩溃消息总是一样的:
* __addContextToList_block_invoke_0() 中的断言失败,/SourceCache/PhotoLibraryServices/MobileSlideShow-1647.5/Sources/PLManagedObjectContext.m:1305
和
*由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“上下文太多。contextList 中没有空格。
谷歌搜索这些错误消息并没有产生任何结果。由于在应用程序至少循环打开/关闭 5 次之前不会发生这种情况,我想也许这些块在完成时没有从苹果数据结构中正确删除?提前感谢任何线索。
更新:经过更多调查,这似乎与同步 ALAssetsGroupLibrary 有关。当我只同步 ALAssetsGroupSavedPhotos 或 ALAssetsGroupLibrary 中有 0 张照片时,不会发生崩溃。如果我只同步 ALAssetsGroupLibrary 并且其中至少有 1 张照片,就会发生这种情况。