-1

iOSで整数の辞書をソートできるかどうか疑問に思っていますか? 以前の例/質問を見ると、ほとんどの人が int の配列または辞書の配列 (int を含む) をソートしているようです。

ただし、次の構造の辞書があるとしましょう。

 {numWords = 12, numPhotos = 15, numFriends = 8}

キーが同じではないので、ソート記述子 (キーで初期化) を使用できないようです。したがって、整数をソートして関連するキーをそのままにしておく方法はありますか?

4

4 に答える 4

0

オブジェクトが一意であると仮定します。

1) allValuesの配列を辞書に問い合わせる

2) 値の配列をソートする

3) valueForKeyがないため、値ごとに高速列挙またはenumerateKeysAndObjectsUsingBlock:を使用して適切なキーを見つけます。

于 2013-04-10T18:20:00.617 に答える
0

辞書はソートできません。

つまり、キーを含む配列と関連する値を含む配列の 2 つの並べ替えられた配列を使用できます。値の順序で並べ替えます。

NSDictionary *d = @{
    @"numWords": @12,
    @"numPhotos": @15,
    @"numFriends": @8
};

NSComparisonResult (^cmp)(id, id) = ^(id obj1, id obj2) {
    return [obj1 compare:obj2];
}

NSArray *keys = [d keysSortedByValueUsingComparator:cmp]
NSMutableArray *vals = [[id allValues] mutableCopy];
[vals sortUsingComparator:cmp];
于 2013-04-10T18:20:17.687 に答える