2012-06-25 1 views
0

Хорошо, я довольно новичок в этом и боролся с тем, что вы, ребята, можете почувствовать, - это очень легкое упражнение. Я трахался высоко и низко и не могу найти хороший учебник или прохождение игры о том, как это сделать. В основном, я использую код ниже, чтобы получить твиты, и мне нужна только часть текста из твита. Как извлечь его из NSDictionary, чтобы использовать «текстовый» ключ в виде таблицы? Я пробовал [dict objectForKey:@"text"], но он не работает - «dict», похоже, не содержит атрибута «text». Заранее благодарю за любую помощь.Получение твитов через TWRequest для просмотра таблицы

// Do a simple search, using the Twitter API 
TWRequest *request = [[TWRequest alloc] initWithURL:[NSURL URLWithString: 
    @"http://search.twitter.com/search.json?q=iOS%205&rpp=5&with_twitter_user_id=true&result_type=recent"] 
    parameters:nil requestMethod:TWRequestMethodGET]; 

// Notice this is a block, it is the handler to process the response 
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) 
{ 
    if ([urlResponse statusCode] == 200) 
    { 
    // The response from Twitter is in JSON format 
    // Move the response into a dictionary and print 
    NSError *error;   
    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&error]; 
    NSLog(@"Twitter response: %@", dict);       
    } 
    else 
    NSLog(@"Twitter error, HTTP response: %i", [urlResponse statusCode]); 
}]; 

ответ

2

Да есть objectForKey @ «текст», но это массив, который означает, что каждая запись (твит) имеет текст (и несколько других атрибутов). Поэтому мы должны прокручивать твиты, чтобы получить для каждого твита текст.

В вашем файле .h

  NSMutableArray *twitterText; 

В вашем .m файл

ли это где-то в viewdidload

  twitterText = [[NSMutableArray alloc] init]; 

И теперь мы можем перебрать ваши результаты. Вставьте этот код, где у вас NSLog (@ «Ответ Twitter:% @», dict);

  NSArray *results = [dict [email protected]"results"]; 

     //Loop through the results 

     for (NSDictionary *tweet in results) 
     { 
      // Get the tweet 
      NSString *twittext = [tweet objectForKey:@"text"]; 

      // Save the tweet to the twitterText array 
      [twitterText addObject:(twittext)]; 

И для ваших клеток в Tableview

  cell.textLabel.text = [twitterText objectAtIndex:indexPath.row]; 

Я думаю, что нужно работать.

+0

Спасибо. Я следовал твоим указаниям, но до сих пор не испытывал радости. строка NSArray * results = [dict objectForKey @ "results"]; flag up error «Ожидаемый]« строка «else» обозначает «Ожидаемое выражение» и закрытие «}]; флаги «Ожидаемое выражение». Я помещаю цикл через код непосредственно после строки журнала, которую вы упомянули, поэтому перед тем, как} before 'else' это правильно? Что я сделал не так? – Alan

+1

Извините, приятель! Забыл: NSArray * results = [dict objectForKey: @ "results"]; и я забыл закрыть for (NSDictionary * твит в результатах), поэтому вам нужно добавить a} в конце этой части. – Sw3n

+0

Привет, спасибо за вашу помощь. Однако я получаю SIGABRT из-за того, что мой массив twitterText пуст? Почему это так? Там есть компонент texy, но он не извлекает его по какой-то причине – Alan

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

  • Нет связанных вопросов^_^