2012-05-07 1 views
1

я могу обновить любой не CoreData загружен Tableview по телефону [nameoftableView reloadData];Обновление таблицы CoreData?

Но когда я называю это на моем CoreData загружен TVC не перезагружать таблицы. Это работает по-другому?

Он обновляет его содержимое, если я снова остановлю и запустил приложение, чтобы он перезагрузил базу данных, поэтому я знаю, что в нем есть обновленный контент.

Приветствия Джефф

+0

reloadData работает для меня при обновлении UITableView, который заполняется из Core Data. Должно быть что-то еще происходит. Может быть, разместите метод, в котором вы вызываете reloadData? – geraldWilliam

+0

Если вы используете NSFetchedResultsController, попробуйте отправить executeFetch: в ваш экземпляр fetchedResultsController. По всей вероятности, он кэшировал исходные результаты, и ему нужно восстановить свежие результаты. – timthetoolman

+0

попробуйте перезагрузить TableView в viewWillAppear() и извлечь из CoreData перед перезагрузкой TableView – Bala

ответ

4

без подробностей трудно понять, что происходит, но если вы используете простой NSFetchRequest Я думаю, вам нужно выполнить запрос и вызвать reloadData снова.

Простая записка

Я предлагаю вам использовать NSFetchedResultsController при работе с Core Data и UITableView s. raywenderlich имеет руководство по использованию этого класса в Core Data. Прежде всего, это позволяет вам иметь дело с большим количеством данных, отображаемых в UITableView. В частности, если для используемого вами NSFetchRequest вы устанавливаете размер партии, данные будут извлекаться в «партиях». Например, первый 10. Затем, если вы прокрутите остальные 10 и так далее ...

Кроме того, вы можете бесплатно использовать изменения данных (обновление, вставка или удаление) с использованием NSFetchedResultsControllerDelegate класса (Reference NSFetchedResultsControllerDelegate).

Надеюсь, это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^