Я использую выбранный контроллер результатов для отображения данных в tableView для приложения чата.
Когда добавляется новая строка, и я сохраняю, и эти новые данные, строка, правильно вставляются в tableView из методов делегата fetchedResultsController.
Затем я прокручиваю свой tableView вниз, чтобы показать новую строку.
Если я снова сохранюContext во время этой прокрутки (я делаю это, чтобы изменить индикатор на отправленный), и это происходит, когда tableViewвсе еще прокручиваю, а затем прерываю прокрутку, и это выглядит немного грязно, поскольку новая строка показывает только частично.
Поскольку я могу изменить отправленный индикатор, используя следующее:
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 для отражения изменений в строке.Однако это все еще происходит, когда я снова сохраняю Context.Есть ли способ сохранить контекст во второй раз без этой проблемы?