У меня есть объект MyEntity
, который имеет отношение к tags
ко многим, так tags
является NSSet
из MyEntity
. Это необязательно, поэтому некоторые MyEntity's
не имеют tags
. Вот то, что я пытаюсь сделать:NSPredicate в зависимости от содержания отношений
predicate= [NSPredicate predicateWithFormat:
@"(rootId == parentId AND NONE tags.tagName == %@)", @"badTag"];
Так что я хочу, чтобы получить все MyEntitys
где rootId == parentId
и не дать мне сущности, если его теги имеют тег с именем "badTag"
. Проблема заключается в том, что если у объекта вообще нет каких-либо тегов, этот объект не возвращается. Я пробовал вариант выше:
@"(rootId == parentId AND ANY tags.tagName != %@)", @"badTag"];
Но это дает тот же результат. Как я могу сделать эту предикатную работу для случая, когда у объекта нет каких-либо тегов?
Существуют ли сущности, которые не имеют тегов, имеют набор тегов, который равен нулю или вообще не установлен. – rdelmar
Они должны иметь только значение по умолчанию. Они никогда не были установлены, и я никогда не подделывал их. – Snowman
Я протестировал этот код, но с пользовательскими объектами, а не с основными объектами данных, и ваш первый предикат работал в этих условиях, при этом набор тегов был ниль (либо установлен в nil явно, либо просто не установлен). Я не знаю, почему это было бы иначе с сущностями. – rdelmar