Я недавно работаю над проектом Core Data.Существует два вида: один из них представляет собой форму, которую пользователь должен заполнить, а затем вставить запись через основные данные в базу данных sqlite;другое представление предназначено для отображения вставленных записей и позволяет пользователю удалить любую из них.
Я реплицировал код для вставки / удаления записей из проекта приложения на основе навигации.Все работает нормально, если пользователь выполняет только вставку или удаление исключительно.Однако, когда две операции чередуются, возникают проблемы ...
Например: 1) Пользователь вставляет «Apple», «Orange» и «Grape», используя форму.Таблица показывает данные правильно.2) Пользователь затем удаляет запись «Оранжевый».Стол все еще выглядит хорошо.3) После этого пользователь вставляет новую запись «Груша».Стол запутался.Запись «Orange» снова появляется на столе ...
Я следил за БД sqlite на протяжении всего процесса тестирования, все работает отлично.Единственная проблема состоит в том, что таблица испорчена.
Я подозреваю, что ошибка вызвана тем, что источник данных таблицы не обновлен.Поскольку строка добавляется / удаляется в соответствии с indexPath, если новая запись использует тот же indexPath со старой записью, а данные таблицы не обновлены, то создается впечатление, что старая запись повторно вставлена.
Однако я понятия не имею, почему данные таблицы не актуальны.Операция вставки / удаления выполняется в одном и том же управляемом контексте.
Это беспокоило меня некоторое время, и я не очень хорошо разбираюсь в основных данных.Я действительно надеюсь услышать любые советы, чтобы разобраться в этом.Заранее спасибо за вашу помощь.