2012-06-25 33 views
0

好的,我很新,並且一直在努力與你們的感受相當容易。我拖過高低,無法找到一個好的教程或演練如何做到這一點。基本上,我使用下面的代碼來獲取推文,而我只想要推文的「文本」部分。我如何將它從NSDictionary中提取出來以便在tableview中使用「文本」鍵?我試過[dict objectForKey:@"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 response:%@」,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」];標記錯誤「預期」「行'else'標記」預期表達式「和關閉'}];'標記「期望的表達」。我正在通過代碼直接在你提到的日誌行之後放置循環,所以在'else'之前}是正確的?我做錯了什麼? – Alan

+1

對不起隊友!忘了: NSArray * results = [dict objectForKey:@「results」];我忘了關閉for(NSDictionary *鳴叫結果),所以你必須在該部分的末尾添加一個} – Sw3n

+0

嗨,感謝您的幫助 - 但我得到一個SIGABRT,因爲我的twitterText數組是空的?爲什麼會這樣?在那裏有一個texy組件,但它沒有提取出於某種原因 – Alan