私は2つのnssetsを持っています。オブジェクトの属性に基づいて2つのNSSetsを比較するにはどうすればよいですか?
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
それらの二組で同じIDを持つこれらのオブジェクトは異なるオブジェクトであるので、私は単に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)
これを行うための最善の方法は何ですか? AliSoftwareの答えは興味深いアプローチがある@
これはgootですが、 'reason: 'のようなエラーが出ます。フォーマット文字列を解析できません。" objectID NOT IN%@ "'これはオブジェクトの属性の本当の名前なので、 'objectID'を使用しました。前にフィルタリングする前にすべてが素敵に見える、私はIDなどを取得します。何か案が? – choise
申し訳ありませんが私の答えを前にテストしていませんでした。 [述語プログラミングガイド](http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html)では、NOT演算子は式全体に適用されます'IN'演算子のような別の演算子ではありません)、' objectID NOT IN%@ 'ではなく' NOT objectID IN%@ 'と書くべきです。それに応じて私の答えを更新しました。 – AliSoftware
はい、 'NOT(objectID IN%@)'と思っています – choise