1

Web サービスから取得した NSDictionary があります。このディクショナリ内の各オブジェクトには、配列が含まれています。NSDictionary に含まれるオブジェクトの数や、各オブジェクトの「キー」が事前にどうなるかはわかりません。私はそれが配列の辞書になることだけを知っています。

オブジェクトの名前とその内容を配列に読み込んで辞書を列挙するにはどうすればよいですか?

私が使用できるこれまでの辞書とのすべての取引

[anotherDict objectForKey:@"accounts"]

私は「キー」を知っているからです。事前に期待する。

どうもありがとう、 - コード

4

5 に答える 5

5

NSDictionaryには、iOS4.0以降の方法がありenumerateKeysAndObjectsUsingBlock:ます。これは非常に簡単で、辞書のエントリを操作するためのブロックオブジェクトを受け取ります。

例:

[anotherDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
   NSArray *arr = obj;
   //Do something
}
于 2012-07-05T09:24:27.890 に答える
1

NSDictionaryクラスには、すべてのキーに対してwith-allKeysを返すインスタンス メソッドがあります。NSArrayNSStrings

于 2012-07-05T09:19:18.120 に答える
1

最も簡単な方法は、allKeys インスタンス メソッドを介して allKeys をフェッチすることです

NSArray *keys = [myDictionary allKeys];

次に、キーごとに辞書を繰り返し処理します。

for (NSString *k in keys)
{
    id object = [myDictionary objectForKey:k];
}

を使用して値がソートされたかのように、キーを順番に取得することもできます

NSArray *sortedKeys = [myDictionary keysSortedByValueUsingSelector:@selector(compare:)];
于 2012-07-05T09:34:16.180 に答える
0

あなたはこれを行うことができます :

NSArray * keys = [dictionnary allKeys];
for (NSString *key in keys) {
   NSArray *tmp = [dictionnary objectForKey:key];
}
于 2012-07-05T09:18:52.630 に答える
0

私はプロではありませんが、辞書のすべてのキーを取得できることは知っています

 NSLog(@"%@",[Your_Dictionary allKeys]);

これにより、その辞書のキーの配列が得られます。

于 2012-07-05T09:19:02.193 に答える