J'ai deux nssets.Comment comparer deux NSSets basés sur des attributs d'objets?
nsset1: person.id = 1, person.id = 2, person.id = 3
nsset2: person.id = 1, person.id = 2
Les résultats doivent être:
nsset1 - nsset2: person (with id 3)
nsset2 - nsset1: null
Ces objets avec le même identifiant dans ces deux ensembles sont des objets différents, donc je ne pouvais pas simplement faire minusSet.
Je veux faire quelque chose comme:
nsset1: person.id = 1, person.id = 2, person.id = 3
nsset2: person.id = 4, person.id = 5
Les résultats devraient ressembler à ceci:
nsset1 - nsset2: person (id 1), person (id 2), person (id 3)
nsset2 - nsset1: person (id 4), person (id 5)
Quelle est la meilleure façon de le faire?
cela ressemble à goot mais j'obtiens une erreur comme "raison:" Impossible d'analyser la chaîne de format "objectID NOT IN% @" 'J'ai utilisé' objectID' parce que c'est le vrai nom de l'attribut de ces objets. tout avant de filtrer avant semble bien, je reçois les identifiants et ainsi de suite. une idée? – choise
Yep désolé n'a pas testé ma réponse avant. Le [Predicate Programming Guide] (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html) indique que l'opérateur 'NOT' s'applique à une expression entière (et pas un autre opérateur comme l'opérateur 'IN' directement), nous devrions donc écrire' NOT objectID IN% @ 'au lieu de' objectID NOT IN% @ '. J'ai mis à jour ma réponse en conséquence. – AliSoftware
oui aussi obtenu avec 'NOT (objectID IN% @)' je pense – choise