13

つまり、NSDictionary のキーと値の順序は、NSDictionary を初期化するときに指定された方法と常に同じですか? または、キーの順序を本当に知る必要がある場合は、別の NSArray を維持する必要がありますか?

4

6 に答える 6

19

いいえ、注文されていません。辞書に要素を追加または削除しない限り、要素は同じ順序のままですが、要素を追加または削除するとすぐに、新しい順序はまったく異なります。

キー/値を順序付けする必要がある場合は、代わりに NSArray (またはその他の順序付けられたデータ構造) を使用してください。

于 2009-08-18T17:50:01.480 に答える
3

NSDictionary のキーと値は順序付けされていません。オプション:

  • 必要な順序でキーの個別の配列を維持します
  • 上記のラッパーである既存のクラスを作成または検索します
  • 注文用の API を追加する NSDictionary の既存のサブクラスを作成または検索します
于 2009-08-19T11:24:27.407 に答える
3
于 2013-01-17T07:10:59.433 に答える
1

NSDictionary にアクセスするとき、キーが同じ順序になることは保証されません。キーを比較できる場合(質問に答えることができると思います)、ソートされた順序でアクセスする必要がある場合は、いつでもソートできます。

最初にキーを配列に読み込み、もちろん配列をソートすることでこれを行う必要があります。

于 2009-08-18T17:52:10.180 に答える
1

Apple のリファレンスによると、NSDictionaryは基本的にハッシュ テーブルのラッパーです。いいえ、特定の順序であるとは限りません。

于 2009-08-18T17:55:24.683 に答える