0

並べ替え記述子、辞書、カウント セットの海で迷っています。誰かが私がより簡単な方法を見つけるのを手伝ってくれることを願っています.

(NSNumbers の) 次のような並べ替えられた配列から始めます。

['7','7','7','5','5','5','5','5','5','3','2','2','2','2']

次のようなソートされた辞書の配列になりたいと思います。

{'5','6'} //the number 5 appeared 6 times
{'2','4'} //the number 2 appeared 4 times
{'7','3'} //the number 7 appeared 3 times
{'3','1'} //the number 3 appeared 1 time
4

1 に答える 1

5

これは、に基づいて、あなたが求めていることを行うスニペットですNSCountedSet

NSArray *numbers = @[@7,@7,@7,@5,@5,@5,@5,@5,@5,@3,@2,@2,@2,@2];

NSCountedSet *countedSet = [NSCountedSet setWithArray:numbers];

NSMutableDictionary *result = [NSMutableDictionary dictionary];
for (NSNumber *num in countedSet) {
    NSUInteger c = [countedSet countForObject:num];
    [result setObject:@(c) forKey:num];
}
于 2013-05-07T18:03:18.940 に答える