Базовые данные: NSFetchedResultsController может выбрать два различных объекта?

Я работаю над приложением для iPhone, и в конкретном представлении я должен загрузить два различных объекта: Тот, который заполнит a UITableView, и другой, который заполнит a UITextView.

Действительно ли возможно выбрать оба свойства с помощью сингла NSFetchedResultsController?

Или сделайте я должен использовать два различных NSFetchedResultsControllers?

Какие-либо идеи о том, как лучше всего приблизиться к этой проблеме?

24
задан Greg 21 September 2013 в 04:56
поделиться

2 ответа

Каждый запрос на выборку имеет только один объект, и каждый контроллер результатов выборки имеет только одну выборку. Поэтому для каждой сущности нужны отдельные контроллеры.

Если подумать, как бы вы сделали предикат для выборки двух логически отдельных сущностей?

Возможно, вам вообще не нужно два предиката. В большинстве случаев можно получить сущности, которые заполняют таблицу, а затем использовать отношения для сущности выбранной строки, чтобы заполнить что-то вроде текстового представления.

15
ответ дан 29 November 2019 в 00:04
поделиться

Как заявил TechZen, ответ - нет.

Однако вы можете самостоятельно отслеживать сохранения NSManagedObjectContext и реагировать на эти сохранения. Если вам действительно нужно наблюдать за несколькими объектами (что гораздо чаще встречается на iPad, чем на iPhone), добавьте наблюдателя NSNotification в NSManagedObjectContextDidSaveNotification и посмотрите на -userInfo из NSNotification , которое возвращается. Затем вы можете выполнить предикаты для результатов, чтобы определить, нужно ли вам обновить отображение. Это то, что скрыто делает NSFetchedResultsController .

8
ответ дан 29 November 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: