オブジェクトを作成し、 を使用してそれらをセットに追加してい-[NSOrderedMutableSet addObject:]
ますが、オブジェクト自体の重複のみがチェックされることがわかりました。おそらくオブジェクト ポインターのアドレスであり、同一のコンテンツを持つ複数のオブジェクトを追加することが可能です。
例えば:
SomeObject* object = [SomeObject alloc] initWithStuff:stuff];
SomeObject* object2 = [SomeObject alloc] initWithStuff:stuff];
[set addObject:object];
[set addObject:object];
[set addObject:object1];
[set addObject:object2];
カウントは2になります。
これは、これらのクラスのポイントが何であるか疑問に思いますか? オブジェクトを持っていて、オブジェクトに含まれるデータではなく、オブジェクト自体が既にコレクションに追加されているかどうかがわからない場合は、どのような状況でしょうか?
セットにコンテンツに基づいて各オブジェクトが 1 つだけ含まれるようにする最も簡単な方法 (またはどのクラスを使用する必要がありますか) は何ですか?