2013-03-22 2 views
0

Скажем, у меня есть NSDictionary * Foo ниже:Как получить доступ к различным элементам в этом NSDictionary?

complete = 1; 
    list =  { 
     8213812 =   { 
      excerpt = "Lorem ipsum dolor...." 
     } 
     8810100 =   { 
      another = "iasjdiasd..." 
     ... 

Я знаю, для доступа к "полной" Я использую [ответ objectForKey: @ "полный"], но как насчет остальных?

+1

Получить внутренний словарь, то доступ к нему. И т. Д. –

ответ

4

Вы просто продолжаете доступ к ключам из вложенных словарей, пока не получите то, что хотите. Для доступа к «списку», это неудивительно

[[response objectForKey:@"complete"] objectForKey:@"list"] 

И для доступа клавиши 8213812 стиля в списке - ну, это зависит от их типа. Предполагая, что они ниточки, это было бы

[[[response objectForKey:@"complete"] objectForKey:@"list"] objectForKey:@"8213812"] 

или использовать новый, более емкий синтаксис

response[@"complete"][@"list"][@"8213812"] 

Но они могут быть NSNumbers или что-то еще, и в случае, если вы бы использовать соответствующий NSNumber.

+0

+1 для нового синтаксиса;) – HAS

2
[[[response objectForKey:@"list"] objectForKey:@"8213812"] objectForKey:@"excerpt"] 

Или, наоборот:

NSDictionary *list = [response objectForKey:@"list"]; 
NSDictionary *inner = [list objectForKey:@"8213812"]; 
NSString *excerpt = [inner objectForKey:@"excerpt"]; 

Или, наоборот:

NSString *excerpt = response[@"list"][@"8213812"][@"excerpt"]; 

и т.д ..

Смежные вопросы