-1

それらを NSSet に変更してから、変更可能なコピーを作成しようとしました。

keyIds = [[[NSSet setWithArray:keyIds] array]mutableCopy];

結果は次のエラーです: 2012-09-27 19:57:36.465 BadgerNew[81030:1303] -[__NSSetI array]: unrecognized selector sent to instance 0x9f968b0

これはとても簡単なことですが、これを行う直接的な方法はわかりません。

4

2 に答える 2

4

問題は、Array と呼ばれる NSSet にメソッドがないことです。

NSSet を NSArray に変換する 1 つの方法は、allObjects メソッドを使用することです。

keyIds = [[[NSSet setWithArray:keyIds] allObjects] mutableCopy]

ただし、Set は本質的に順序付けされていないため、keyIds で最初に持っていたすべての順序付けが失われます。その場合は、最初に keyIds をセットとして保存することをお勧めします。

于 2012-09-27T13:19:31.713 に答える
1

これを試して -

NSSet *uniqueItems = [NSSet setWithArray:myArrayWithLotsOfDuplicates];
NSArray *newArrayWithUniqueItems = [NSArray arrayWithArray:[uniqueItems allObjects]];

オリジナルの順序はありませんが、各アイテムは一意になります...

于 2012-09-27T13:22:58.377 に答える