Двойная запись в табличном представлении - PullRequest
0 голосов
/ 21 января 2010

Кажется, у меня та же проблема, что и здесь: Как избежать потери данных, когда UIImagePickerController выгружает мой контроллер?

У меня та же проблема, но это UITableViewController. Я использую Core Data и NSFetchedResultsController, используя -controllerWillChangeContent, -controller:didChangeSection:atIndex:forChangeType:, -controller:didChangeObject:atIndexPath:forChangeType:newIndexPath: и -controllerDidChangeContent (как в примере кода iPhoneCoreDataRecipes).

Моя проблема в том, что в -viewDidLoad я делаю -performFetch, который правильно перезагружает tableView (если я добавил элемент с помощью средства выбора изображений в качестве модального представления, он будет учтен и т. Д.). Но затем вышеупомянутые методы вызываются и выполняют операцию (вставку) во второй раз! В итоге я получаю табличное представление, содержащее двойную запись для одного объекта в базе данных Core. Если я перезапущу приложение, у меня будет только одна запись, так что это определенно проблема обновления пользовательского интерфейса.

Есть идеи?

1 Ответ

0 голосов
/ 27 января 2010

Наконец, я использовал второй контекст управляемого объекта. Я сохраняю в постоянном хранилище через этот контекст и обновляю основной контекст для вызова методов NSFetchedResultsControllerDelegate. Это именно то, что реализовал пример CoreDataBooks.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...