0

私はNSDictionaryデータでいっぱいです。これが php の場合、次のような方法でアクセスできます。

$data = $array['all_items'][0]['name'];

目的 c で同様のことを行うにはどうすればよいですか? ($arrayになりますNSDictionary)

4

3 に答える 3

3

Objective-C の同等のコードは次のとおりです。

id data = [[[array objectForKey:@"all_items"] objectAtIndex:0] objectForKey:@"name"];

objectForKey:NSDictionaryobjectAtIndex:のメソッドであり、NSArray のメソッドであることに注意してください。

LLVM 4.1 を使用した Xcode 4.5 のショートカットは次のとおりです。

id data = array[@"all_items"][0][@"name"];

また、「配列」が NSDictionary インスタンスであり、辞書内のすべての値の配列を取得する場合は、allValuesNSDictionary のメソッドを使用することに注意してください。

id data = [array allValues][0][@"name"];

もちろん、allValuesソートされていない配列を返すため、インデックスによる配列へのアクセスはあまり役に立ちません。より一般的には、次のように表示されます。

for (NSDictionary* value in [array allValues])
{
    id data = value[@"name"];
    // do something with data
}
于 2012-09-19T03:09:27.527 に答える
1

残念ながら、objective-c バージョンは、PHP バージョンほど構文的に洗練されていません。

NSDictionary *array = ...;
NSArray *foo = [array objectForKey@"all_items"];
NSDictionary *bar = [foo objectAtIndex:0];
NSString *data = [bar objectForKey@"name"];

簡潔にするために、次のように 1 行でこれを行うことができます。

NSString *data = [[[array objectForKey@"all_items"] objectAtIndex:0] objectForKey@"name"];
于 2012-09-19T02:44:40.953 に答える
0

あなたはそれを使うべきです、

NSString *value = [[multiArray objectAtIndex:1] objectAtIndex:0];

ここで質問を見ることができます

于 2012-09-19T02:48:43.373 に答える