Последовательное обновление UITableview после обновлений Coredata - PullRequest
2 голосов
/ 28 января 2011

У меня есть приложение, которое использует coredata.Загрузка данных происходит в классе А. Обновления / сохранения / удаления Coredata находятся в SharedDelegate (B).Делегат инициирует загрузку в A и реализует свой протокол для получения уведомлений о завершении загрузки, поэтому делегат может обновить свои данные в базе данных.

Теперь, после того, как это произошло, я бы хотел, чтобы класс C, который имеет UITableview, обновил свои строки и ячейки, чтобы я мог показать новый контент., что он может обновить свою таблицу?Каковы возможные ошибки, которые могут возникнуть?

Загрузка и обновление происходит асинхронно, конечно, и до сих пор, я обновляю только после того, как ВСЕ загрузки были завершены .... Я хотел бы разделить задачускажем.

Есть намеки?

Ответы [ 2 ]

6 голосов
/ 28 января 2011

Два варианта:

  1. Используйте NSFetchedResultsController в качестве источника данных табличного представления. Документация для NSFetchedResultsController содержит много кода, который вы можете скопировать и вставить в свое приложение для управления обновлениями табличного представления при каждом изменении контекста управляемого объекта.

  2. Регистрация на NSManagedObjectContextObjectsDidChangeNotification. В вашем методе уведомления обработайте случаи NSInsertedObjectsKey, NSUpdatedObjectsKey и NSDeletedObjectsKey и соответственно обновите представление таблицы.

1 голос
/ 28 января 2011

Используйте NSNotificationCenter. Установите класс C для прослушивания уведомлений и перезагрузите данные соответственно. Когда SharedDelegate B обновит данные, отправьте уведомление.

...