2014-01-15 3 views
1

У меня есть объект Core Data, который имеет объекты NSOrderedSet для основных данных в нем, называемые hierarchyItems. Я хочу, чтобы создать выборку запрос, который будет проверять, чтобы увидеть, если hierarchyItems набор содержит объект, который также находится в другом NSMutableSet основных данных objects.I хотел бы создать NSPredicate или NSExpression, который имеет такую ​​же функциональность какИспользование NSPredicate для определения того, содержит ли NSSet объекты из другого NSSet

[obj.hierarchyItems intersectsSet: setOfItems]; 
+0

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

+0

@MartinR: установка проверки равенства довольно тривиально получена из набора пересечений – njzk2

+0

@ njzk2: Я не совсем понимаю, что вы имеете в виду. Вопрос касался предикатов Core Data (которые имеют только ограниченный набор доступных операторов). Как вы можете видеть из ответа на «возможный дубликат», найти все объекты, соотношение которых * равно * заданному набору, сложнее, чем решение этого вопроса. –

ответ

3

Чтобы извлечь объект, для которого hierarchyItems имеет непустое пересечение с setOfItems, используйте запрос выборки с предикатом

[NSPredicate predicateWithFormat:@"ANY hierarchyItems IN %@", setOfItems] 
+0

К сожалению, это не работает. Я пробовал это безрезультатно. – user3200440

+0

@ user3200440: Ну, я проверил его, и это сработало для меня. - Можете ли вы предоставить дополнительную информацию? Как определяются сущности, отношения и т. Д. Вы получаете сообщение об ошибке, никаких результатов, неправильных результатов ...? –

+0

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

Смежные вопросы