问题描述
我在我的项目中遇到了以下崩溃的变体:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',reason: 'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (22) must be equal to the number of rows contained in that section before the update (1),plus or minus the number of rows inserted or deleted from that section (8 inserted,1 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in,0 moved out).'
很快我将转向 diffable 数据源 API,但我真的很想知道我在这里做错了什么,也许我可以向我的 iOS 12 用户发布一个更稳定的告别版本。
我有一个包含两个上下文的 Core Data 设置,一个主要和一个背景。主在后台保存时合并数据,通过通知。这里没有什么开创性的。
NSFetchedResultsControllerDelegate
使用beingUpdates/endUpdates 动画部分更新tableview。我禁用了 NSFetchedResultsChangeUpdate
更新,因此它们不会干扰,以隔离问题的根源。
似乎在更新正在进行时应用程序崩溃,然后通过调用 performFetch
加载 fetchedResultsController。在这种情况下,崩溃日志没有多大帮助。知道去哪里看吗?
有几个很好的来源,例如this 一个,但在这种情况下没有帮助。
感谢您的见解。
这是示例项目:https://filebin.net/xtordf60rs4pmckk
SampleSOLongerList.zip
一直崩溃,但由于列表较长,可能更难调试。
坠机视频:https://youtu.be/D7yoojdpkdQ
崩溃仅在全新安装时发生(并非总是如此——如果预加载了更多数据,它会一直发生) 要使应用崩溃,您只需启动它,然后点击“下一步”,大部分时间它都会崩溃。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)