У меня есть два nssets.Как сравнить два набора NSS на основе атрибутов объектов?
nsset1: person.id = 1, person.id = 2, person.id = 3
nsset2: person.id = 1, person.id = 2
Результаты должны быть:
nsset1 - nsset2: person (with id 3)
nsset2 - nsset1: null
Эти объекты с одинаковым идентификатором в этих двух наборах разные объекты, поэтому я не мог просто сделать minusSet.
Я хочу сделать что-то вроде:
nsset1: person.id = 1, person.id = 2, person.id = 3
nsset2: person.id = 4, person.id = 5
Результаты должны быть такими:
nsset1 - nsset2: person (id 1), person (id 2), person (id 3)
nsset2 - nsset1: person (id 4), person (id 5)
Что такое лучший способ сделать это?
это выглядит goot, но я получаю сообщение об ошибке «причина:» Невозможно проанализировать строку формата «objectID NOT IN% @» «я использовал' objectID », потому что это настоящее имя атрибута этих объектов. все перед фильтрацией, прежде чем выглядит красиво, я получаю идентификаторы и так далее. Есть идеи? – choise
Я сожалею, что не тестировал свой ответ раньше. В [Predicate Programming Guide] (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html) указано, что оператор 'NOT' применяется ко всему выражению (и а не другой оператор, например, оператор 'IN'), поэтому мы должны написать' NOT objectID IN% @ 'вместо' objectID NOT IN% @ '. Я обновил свой ответ соответственно. – AliSoftware
да также получил его с 'NOT (objectID IN% @)' я думаю – choise