0

次の問題があり、解決方法がわかりません。Person オブジェクト (2 つのキーを持つ NSDictionary: 名前、年齢) を含む NSSet があります。時々、Person オブジェクトの NSArray を取得し、それらを NSSet に追加したいのですが、重複を除外したいと考えています。NSPredicates を使用できると考えていますが、ドキュメントを読んでいて、NSSet に既にあるものに基づいて配列コンテンツを除外するために NSPredicate をフォーマットする方法がわかりません。

したがって、5 つのカスタム オブジェクトを持つ NSSet があり、6 つのオブジェクトを持つ NSArray を取得しますが、そのうちの 3 つは NSSet に既に存在するため、それらを除外したいと考えています。文字列や整数などの基本的なオブジェクトで何をすべきかは理解していますが、これを拡張してカスタムのより複雑なオブジェクトを操作する方法がわかりません。

私の問題が十分に明確だったことを願っています。出発点、例、またはアドバイスは大歓迎です。

ありがとうございました!

4

1 に答える 1

0

変更可能なセットが既にある場合は、特に何もする必要はありません。将来のある時点で同じ Person インスタンスが返された場合、 addObject: は単にそれを無視します。2 つのオブジェクトが同じインスタンスであるかどうかだけでなく、「等しい」という意味が異なる場合は、それを自分で処理する必要がありますが、新しいオブジェクトが isEqual: に対して YES を返す場合、addObject: は既にそれを無視します。セットに入れます。

于 2010-04-05T23:04:37.907 に答える