2010-02-15 2 views
1

Я использую api, который предоставляет мне данные из Интернета. Данные находятся в формате Json и хранятся в NSDictionary. Как это:Как получить ключевое значение от NSdictonary - iphone sdk

SBJSON *parser = [[SBJSON alloc] init]; 
dict = [[NSDictionary alloc]init]; 
dict = [parser objectWithString:jsonArray error:nil]; 

GGB консоль результат для: ро Dict

 1262 =    { 
      "feed_name" = name1; 
      "new_results" = 6; 
      "next_update" = "2010-02-16T15:22:11+01:00"; 
     }; 
     1993 =    { 
      "feed_name" = name2; 
      "new_results" = 0; 
      "next_update" = "2010-02-16T09:09:00+01:00"; 
     }; 

Как я могу получить доступ к значениям "1262" и "1993" и поместить их в NSArray, для использования через UITableView

Большое спасибо, с уважением, Барта

ответ

5

Прежде всего, метод SBJSON в objectWithString:error: будет возвращать одно на следующие зависимости от того, что корневой объект находится в сообщении JSON:

  • NSArray
  • NSDictionary

Итак, вам не всегда должен предполагать, что он вернет вам словарь, если вы не знаете, что будет возвращено в JSON.

Во-вторых, вы назначаете новый объект NSDictionary, но затем назначаете результат анализатора вашей переменной dict, протекая ранее выделенный словарь. Эта линия не нужна: dict = [[NSDictionary alloc]init];.

Наконец, поскольку возвращаемый объект является словарем, вы можете получить ала объектов из словаря, как это:

for (NSString *key in [dict allKeys]) 
{ 
    NSDictionary *feed = [dict objectForKey:key]; 

    //do stuff with feed. 
} 
+0

Спасибо за быстрый ответ! это сработало для меня! Проблема с памятью также исчезла после вашего предложения. –

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