IOS/Xcode/search/coredata: может ли табличное представление или панель поиска отображаться из более чем одного объекта при использовании основных данных?

Есть ли способ иметь панель поиска, которая ищет более одного объекта (например, таблицу в Database Speak) и отображает результаты? Например, искать и отображать как авторов, так и названия книг с определенной строкой в ​​них?

Примечание. Я хотел бы иметь эту панель поиска поверх таблицы, которая извлекается только из одного объекта. Поиск должен быть более общим в том, что он извлекает, чем в конкретной таблице, то есть, если вы просматриваете книги, извлеченные из объекта книг (или таблицы), можете ли вы выполнить поиск как по названию, так и по автору в поле поиска выше?


person user1904273    schedule 19.04.2015    source источник
comment
Вы хотите, чтобы результаты поиска включали книги И авторов или книги, в названии или имени автора которых содержится искомый текст?   -  person pbasdf    schedule 19.04.2015
comment
Я не уверен, что действительно понимаю, о чем вы спрашиваете: нет прямой ссылки на текст поиска, который вводит пользователь, и ваш запрос на получение основных данных, поэтому вы можете реализовать несколько запросов на получение основных данных, чтобы получить результаты из нескольких. объектов независимо от того, какие объекты отображаются в данный момент. Но я подозреваю, что что-то упускаю из того, что вы спрашиваете - пожалуйста, уточните.   -  person Ali Beadle    schedule 19.04.2015
comment
пба..Книги и авторы. Идея заключалась бы в том, чтобы иметь универсальное окно поиска, доступное с разных экранов, которое выдавало бы несколько типов записей.   -  person user1904273    schedule 20.04.2015
comment
Али, идея состоит в том, чтобы иметь универсальное поле поиска, которое выполняет поиск по всей базе данных, состоящей из нескольких таблиц или сущностей, то есть авторов книг, независимо от того, находитесь ли вы на экране книг или авторов. Я думаю, вы бы использовали отдельный контроллер отображения поиска, чтобы вы были освобождены от базового представления FRC, в котором вы находитесь. Однако не могли бы вы создать очередь запросов на выборку с предикатами, которые запрашивают разные объекты? Или как бы вы поступили, запрашивая несколько сущностей и связывая результаты? Я знаю, как это сделать в SQL через соединения, но не в среде IOS.   -  person user1904273    schedule 20.04.2015
comment
Каждый fetch/fetchedResultsController получит только один объект, поэтому согласно @AliBeadle, если вы хотите отобразить несколько объектов, вам потребуется несколько fetch/FRC. Сложность заключается в представлении их в виде таблицы, особенно если вы хотите, чтобы они были отсортированы таким образом, чтобы смешивались различные объекты. Самый простой вариант — дать каждому отдельный раздел в таблице.   -  person pbasdf    schedule 20.04.2015


Ответы (1)


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

NSPredicate(format: "author.name CONTAINS[cd] %@ || title CONTAINS[cd] %@", 
            searchTerm, searchTerm)
person Mundi    schedule 19.04.2015