セットに一意のオブジェクトを追加したいだけなので、NSSet を使用しています。オブジェクトがそのセットに正常に追加された場合、オブジェクトを配列に追加したいと思います。これを行う方法はありますか?オブジェクトが正常に追加されたときに、NSSet に何かを返させることはできますか?
質問する
134 次
4 に答える
2
追加を試みる前後の NSSet の数を比較できます。
NSInteger setCount = [mySet count];
[mySet addObject:foo];
if ([mySet count] > setCount) {
// object was added
}
オブジェクトを追加する前に、containsObject テストを実行することもできます。
if ([mySet containsObject:foo]) {
// object already exists
} else {
// object is not yet in the set
[mySet addObject:foo];
[myArray addObject:foo];
}
さらに別のオプションは、単純にオブジェクトをセットに追加し、完了したらセットを配列に変換することです。
[mySet addObject:foo];
NSArray *myArray = [mySet allObjects];
于 2013-10-22T02:22:45.943 に答える
0
配列とセットの両方に同じオブジェクトを追加している限り、なぜそれをしたいのかわかりません。すべてのオブジェクトを NSSet に追加し、以下のメソッドを呼び出して NSMutableArray を取得します。
NSMutableArray *uniqueItems = [NSMutableArray arrayWithArray:[mySet allObjects]];
于 2013-10-22T02:34:43.557 に答える