web-dev-qa-db-ja.com

インデックスによるNSMutableDictionaryのオブジェクトへのアクセス

NSMutableDictionaryからキー/値を順番に(テーブルビューで)表示するには、インデックスでアクセスする必要があります。インデックスによるアクセスがそのインデックスでキーを与えることができれば、値を取得することができます。それまたは別の手法を行う方法はありますか?

55
4thSpace

AllKeysメソッドを使用して、オブジェクトのキーを含むNSArrayを取得できます。その後、インデックスでそれを調べることができます。キーが配列に表示される順序は不明であることに注意してください。例:

NSMutableDictionary *dict;

/* Create the dictionary. */

NSArray *keys = [dict allKeys];
id aKey = [keys objectAtIndex:0];
id anObject = [dict objectForKey:aKey];

編集:実際には、あなたがしたいことを理解していれば、高速列挙を使用して簡単に行うことができます、たとえば:

NSMutableDictionary *dict;

/* Put stuff in dictionary. */

for (id key in dict) {
    id anObject = [dict objectForKey:key];
    /* Do something with anObject. */
}

編集:マルコが指摘したタイプミスを修正。

122
Benno

辞書のallKeysメソッドを使用して、すべてのキーの配列を取得できます。そして、インデックスによって配列にアクセスできます。ただし、辞書自体には固有の順序はないため、辞書の変更前後で取得するキーの順序は完全に異なる場合があります

9
newacct