В моем приложении iPhone у меня есть NSFetchedResultsController, показывающий объекты пользователя в UITableView. Пользовательские объекты имеют 0-много объектов журнала. Сводка объектов журнала отображается вместе со своим объектом User в UITableView.Как вызвать перезагрузку в NSFetchedResultsController без изменения выбранного объекта?
Мое приложение использует панель вкладок, поэтому для ввода пользователем на вкладке ведения журнала требуется, чтобы NSFetchedResultsController пользовательской вкладки запускался для перезагрузки.
До сих пор я это сделать, написав на объект пользователя:
log.user = nil;
log.user = [User current]; // Same as before. Just triggering a reload.
NSError *error = nil;
[myManagedObjectContext save:&error];
Это прекрасно работает, но, кажется, немного как взломать.
Есть ли лучший способ сделать это? Как указано, что изменения в объекте журнала должны также распространяться на объект User?
Здесь * есть новые данные, доступные в объектах журнала. Объекты журнала суммируются вместе с объектом User на экране пользователя. Однако обновление только объекта журнала не приведет к обновлению выбранного объекта пользователя. – geon
В этом случае, если вы находитесь в соответствующем контроллере представления, достаточно было бы вызвать '-reloadData', если бы не я, то у меня был бы соответствующий контроллер вида для прослушивания' NSManagedObjectContextDidSaveNotification' и обновления таблицы (или даже сузить его до определенного клеток) по мере необходимости. Ваше первоначальное решение кажется рискованным. –