私は、NSDictionaryをソートする正しい方法は、キーから配列を作成し、配列をソートし、次に配列を列挙し、そこからNSDictionaryを操作することです。NSDictionaryはメモリ内でアルファベット順になっていますが、列挙ではないのはなぜですか?
NSLog(@"%@", dict);
しかし、これではありません:私の質問は、なぜ、このアルファベットは、文字列のキーと値を、NSDictionaryの*の辞書のために、
さ
for (NSString *w in dict)
{
NSLog(@"%@", w);
}
は奇妙に思えます...私は何か間違っているのですか?
ありがとうございます。
ああ、意味があります。私はソートを行うNSLogの%@について考えなかった。ありがとう! – iBuys
I。辞書は本質的に順序付けられていない。 – bbum
辞書はある値を別の値にマッピングするコレクションの単なるインタフェースです。それは順不同である必要はありません。たとえば、バイナリツリーから辞書を作成することができます。その場合は、順序付けられます。 C++では、std :: mapに辞書インタフェースがあり、順序付けられています。ハッシュテーブルは順序付けされていないので、1つの辞書から作成された辞書も同様です。 –