Основные данные NSP предикат для (выберите ... где нет в (выберите)) - PullRequest
1 голос
/ 02 ноября 2011

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

В этом вопросе Базовые данные: запрос идентификаторов объектов в предикате?

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

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (self IN %@)", arrayOfExcludedObjects];

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

1 Ответ

2 голосов
/ 28 ноября 2011

Оказывается, что нет способа сделать соединение в CoreData.

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

Кажется, лучший способ сделать это - выполнить запрос, который я хочу, и вернуть объекты, которые я хочу ограничить, и поместить их в arrayOfExcludedObjects.В качестве альтернативы я могу добавить объекты, которые я хочу сохранить, в массив и добавить предикат с помощью «(self IN% @)», и это позволит выполнить то же самое.

Дополнительная функциональность, которую я получаю с основными данными, иногда даетпотеря другой функциональности.

Возможно, когда-нибудь Apple добавит эти типы предикатов.

...