【发布时间】:2017-02-10 14:41:01
【问题描述】:
在我的崩溃日志中,我发现了一个有趣的崩溃,我无法弄清楚它为什么会发生。我也无法复制它。
当用户点击一个单元格时,在我的tableView:didSelectRowAtIndexPath: 方法实现中的以下行中,它崩溃了:
fetchedResultsController?.objectAtIndexPath(indexPath) as! SearchResultEntity
崩溃:
Fatal Exception: NSInvalidArgumentException
cannot access fetched objects before -performFetch:
问题是 performFetch: 在视图控制器的 viewDidLoad 方法中被调用。因此,在调用tableView:didSelectRowAtIndexPath: 委托方法之前,不可能没有调用performFetch:。还是这样?
我在 NSFetchedResultController 中使用非常常见的设置,它显示来自数据库的结果。随着旧记录的删除和新记录的插入,数据库中的记录经常发生变化。
我想到的一件事是,当从 CoreData 中删除其相关对象并且表格视图正在动画删除更改时,用户可以点击单元格。这可能吗?
如果是这个原因,有什么办法可以避免吗?
【问题讨论】:
标签: ios uitableview core-data swift2 nsfetchedresultscontroller