使用NSFetchedResultsController时是否仍保存saveContext而不触发委托?

时间:2019-04-06 02:19:46

标签: ios swift xcode core-data nsfetchedresultscontroller

我使用获取的结果控制器在聊天应用程序的tableView中显示数据。

当添加新行并且我保存上下文时,该新数据行将从fetchedResultsController委托方法正确插入到tableView中。

然后我将tableView滚动到底部以显示新行。

如果在滚动期间再次执行saveContext(我这样做是为了将指示符更改为已发送),并且发生在tableView仍在滚动时,然后我中断了滚动,并且看起来有点混乱,因为新行仅部分显示了。 / p>

因为我可以使用以下方法更改发送的指标:

if let indexPath = self.fetchedResultsController.indexPath(forObject: messageForUpdate) {
    DispatchQueue.main.async(execute: {
        if let cell = self.tableView.cellForRow(at: indexPath) as? MessageTableViewCell {
            cell.messageStatus = "sent"
        }
    })
}

我不需要coreData委托来反映行中的更改。但是,当我再次保存上下文时,它仍然可以。有没有第二种方式来保存上下文而不会出现此问题?

0 个答案:

没有答案