使用NSFetchedResultsController委托方法控制器(_:didChange: at:for:newIndexPath:),在controllerWillChangeContent(_:)中的tableView.beginUpdates()和controllerDidChangeContent(_:)中的tableView.endUpdates()之间,会导致具有nil属性的对象(包括在合并来自不同设备的更改时在awakeFromInsert())中通常设置的uniqueIdentifier )以及相关的崩溃。当只实现带有tableView.reloadData()的controllerDidChangeContent(_:)委托方法时,问题不会发生。
任何关于如何消除这个问题的建议都将不胜感激。
发布于 2017-10-29 21:48:09
在controllerWillChangeContent(_:)中,在beginUpdates()之前添加beginUpdates()似乎可以解决这个问题。它确保在fetchedResultsController ( FRC )委托方法修改tableView之前,tableView中的数据与FRC(FRC)中的数据同步。
https://stackoverflow.com/questions/46865252
复制相似问题