2011-12-29 13 views

答えて

1

これを行うには、Monoloの答えが正しいです。

[self allKeys]は、順序付きシーケンスを返しません。それはNSSetスタイルです。

そして、私は多くの機能を持っていPLHashという名前のクラスを記述します。

  • キー値格納
  • キー順支援
  • アイテムの最大サイズ制御(PLHashにmaxItemsを設定し、それがでアイテムを保持しますFIFO)

ここでは、URL https://github.com/xhan/PlutoLand/blob/master/PlutoLand/Additions/PLHash.h

です
0

何も組み込まれていませんが、辞書の横にあるキー配列を使用して注文を記録できます。

0

あなたは最高のオフになるのいずれかallkeys配列を取得し、キーの値を取得したり、独自のクラスを作ることは格納することをソートあなたが望む方法でオブジェクトを使用できます。 NSDictionaryが実際にビルドされていないものをやっているような気がしますが、キーをソートするために何をしようとしていますか?

0

1つのオプションは、nsdictionaryにカテゴリを作成することです。sortedKeysか何かを呼び出すと、ソートされた[self allKeys]が返されます。

更新:今、私は自分の携帯電話からの応答していないよという、ここでは、わかりやすくするために冗長に書かれた、私の提案だとあなたは、ARC使用していると仮定すると:

@interface NSDictionary (sort) 

- (NSArray *)sortedKeys; 

@end 

@implementation NSDictionary (sort) 

- (NSArray *)sortedKeys { 

    NSArray *keyArray = [self allKeys]; 
    NSArray *sortedKeyArray = [keyarray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 

    return sortedKeyArray; 
} 

@end 

を私は個人的にNSDictionaryのをサブクラス化とは思いません行く道です。

関連する問題