Поиск основных данных в разных учреждениях - PullRequest
2 голосов
/ 23 ноября 2011

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

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

Так что, если я не нахожу искомое слово в заголовке, я хочу искать в заголовках сущностей, связанных с первым типом сущности.

Возможно ли это с одним NSPredicate?

Вот моя базовая модель данных

Code Data model diagram

Ответы [ 2 ]

5 голосов
/ 23 ноября 2011

В качестве отступления вы НИКОГДА не должны использовать односторонние отношения.Они плохо влияют на производительность, и Xcode должен кричать на вас, предупреждая о них.Не игнорируйте предупреждения.

Для поиска я бы следовал тому, что сказал @Felixyz, две выборки и объединял результаты.Если данные становятся объемными, вам нужно разделить «заголовок поиска» на отдельный объект со связями и просто выполнить поиск по нему.

Хотя исправьте свои отношения.Даже если вы никогда их не используете, Core Data будет использовать.

1 голос
/ 23 ноября 2011

У вас есть два типа сущностей: Term и Part. Вы хотите, чтобы список был структурирован так:

  • Сначала все Term сущности с title == title
  • Тогда все Part сущностей с title == title

Если это так, вы не сможете получить обе части списка одним NSFetchRequest. Самый простой способ - выполнить две отдельные выборки и просто добавить второй список к первому. Если вы добавите больше структуры к своим данным, вы сможете выполнить это одним причудливым запросом, но, насколько я понимаю, это того не стоит. Если у вас огромные объемы данных, вам, конечно же, следует подумать о разумных способах их индексации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...