带有核心数据删除错误的 NSFetchedResultsController
Posted
技术标签:
【中文标题】带有核心数据删除错误的 NSFetchedResultsController【英文标题】:NSFetchedResultsController with Core Data- Deletion Error 【发布时间】:2018-07-14 03:18:52 【问题描述】:我有一个对象的核心数据集,我将它们放入表格单元格中。但是,我还有另一组“间隔”单元格,它们位于每个表格单元格之间。 因此,当我返回 NumberOfRowsInIndexPath 时,我返回获取的结果计数 * 2。 但是,当我删除单元格时,出现此错误:
严重的应用程序错误。在调用 -controllerDidChangeContent: 期间,从 NSFetchedResultsController 的委托中捕获了异常。无效更新:第 0 节中的行数无效。更新后现有节中包含的行数(15)必须等于更新前该节中包含的行数(17),加上或减去数字从该部分插入或删除的行数(0 插入,1 删除)加上或减去移入或移出该部分的行数(0 移入,0 移出)。与 userInfo (null)
有什么方法可以告诉 XCode 忽略这个错误? 我在其他地方读到这是一个潜在的错误。 无论如何,我已经查看了我的 NSFetchedResultsController 委托,并且我确定代码是正确的。
【问题讨论】:
您是否正确实施了-controllerDidChangeContent:
?在这种方法中不看代码很难给出建议。您会分享此方法中的代码以便更好地理解吗?
到目前为止你做了什么?代码本身在哪里?我认为这不是你说的错误。
您需要像其他人所说的那样显示您的代码,但本质上您的问题是您只从表中删除一行,但从numberOfRowsInSection
返回的值表明您已删除 2。您还需要删除关联的“间隔”单元格。
【参考方案1】:
使用这些间隔单元会让您的生活变得艰难,在添加、删除和移动行时保持所有同步将非常复杂。
您应该重新设计您的 UI,通过在实际单元格的底部放置空白空间来不需要间隔单元格,或者如果这听起来不可行,则可以使用 UICollectionView
。
【讨论】:
以上是关于带有核心数据删除错误的 NSFetchedResultsController的主要内容,如果未能解决你的问题,请参考以下文章