Волшебная запись - потеря информации о моей сущности

У меня есть приложение, в котором есть TableView с информацией о клиенте.

Если щелкнуть ячейку, я загружаю информацию об этом клиенте.

Я использую Magical Record для управления всеми своими сущностями.

Что я делаю:

1) Загрузить всю сущность CUSTOMER в viewDidLoad моего TableView.
2) Пользователь щелкает, чтобы просмотреть сведения о покупателе
3) Передать в ViewController детали объект, представляющий сущность CUSTOMER (только один ).

Все работает хорошо.

Проблема в том, что если пользователь решит перезагрузить TableView, я сделаю следующее:

1) Перейдите к API, чтобы получить всех клиентов
2) [Customer truncateAll]
3) Создайте все объекты обратно в CoreData
5) [[NSManagedObjectContext defaultContext] saveToPersistentStoreAndWait]
6) Перезагрузите табличное представление

НО, если пользователь щелкнет, чтобы просмотреть сведения о клиенте во время этого процесса, следующий ViewController некоторое время будет правильно отображать информацию о клиенте. Затем после того, как [Customer truncateAll] происходит, вся информация умирает.

Как я могу предотвратить это?

Большое спасибо!


person Pedro Milanez    schedule 16.04.2014    source источник


Ответы (1)


Вы можете использовать NSFetchedResultController для прослушивания изменений вашего Customer объекта. Когда ваш вызов API завершится и вы создадите нужные объекты где-то еще в своем приложении, вы получите уведомление об этих изменениях в контроллере, а затем сможете перезагрузить данные. Если вы не знакомы с этой концепцией, посмотрите здесь.

person Maciej Oczko    schedule 16.04.2014
comment
Я понял. Проблема в том, как я могу идентифицировать того же клиента, которого я просматриваю? Помните, я делаю 2) [Customer truncateAll] сразу после загрузки. - person Pedro Milanez; 17.04.2014