JSONから返されたデータから入力されたキーと値のペアを持つ辞書があります。私がしたいのは、辞書を使用してUITableViewにデータを入力することです。
テーブルの構造は次のとおりです。
【商品名】【メーカー名】別
これが意味することは、キーが製品名で、値がメーカー名であることです。キーの名前と値の名前を取得する必要があります。これはどのように行うことができますか?forループなしで可能ですか?
JSONから返されたデータから入力されたキーと値のペアを持つ辞書があります。私がしたいのは、辞書を使用してUITableViewにデータを入力することです。
テーブルの構造は次のとおりです。
【商品名】【メーカー名】別
これが意味することは、キーが製品名で、値がメーカー名であることです。キーの名前と値の名前を取得する必要があります。これはどのように行うことができますか?forループなしで可能ですか?
メソッドを使用しenumerateKeysAndObjectsUsingBlock:
ます。次のコードは、必要な文字列のリストを作成します。
NSMutableArray *names = [NSMutableArray array];
[dictionary enumerateKeysAndObjectsUsingBlock: ^(NSString *key, NSString *object, BOOL *stop) {
[names addObject[NSString stringWithFormat:@"%@ By %@",key, object]];
}];
keyEnumerator
ofNSDictionary
および for each キーを使用して、値を検索できます。これは次のようになります。
for (NSString *p in dict)
{
NSString *m = [dict objectForKey:p];
// do something with (p,m)
}
for
-loopsを回避することを心配する必要はありません。結局、for
ループのようなものは常に下のどこかで発生します。
NSArray * keys = [results allKeys];
for (int i = 0;i<[keys count];c++){
NSString* productName = [key objectAtIndex:i];
NSString* manufacturerName = [results objectForKey:productName];
}
お役に立てれば...
名前は文字列と仮定していますが、状況に応じて型を変更できます..
キーがjsonから動的である場合は、使用できます
NSArray *keys = [dictionary allkeys];
次に、インデックス パス メソッドの行のテーブル ビュー セルで、テーブル ビューに対応するキーとその値を設定できます。