好吧,我对此很陌生,并且一直在努力解决你们可能认为非常容易的事情。我已经拖网高低,无法找到关于如何做到这一点的好教程或演练。基本上,我使用下面的代码来获取推文,我只想要推文的“文本”部分。如何从NSDictionary中提取它以便在tableview中使用“text”键?我尝试了[dict objectForKey:@"text"]
但它不起作用 - 'dict'似乎不包含'text'属性。在此先感谢您的帮助。
// 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]);
}];
答案 0 :(得分:2)
是的,有一个objectForKey @“text”,但它是一个数组,这意味着每个条目(推文)都有文本(以及其他几个属性)。因此,我们要遍历推文,以便为每条推文提供文本。
在你的.h文件中
NSMutableArray *twitterText;
在你的.m文件中
在viewdidload中的某处执行此操作
twitterText = [[NSMutableArray alloc] init];
现在我们可以循环搜索结果了。将此代码粘贴到您的NSLog(@“Twitter响应:%@”,dict);
NSArray *results = [dict objectForKey@"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];
我认为应该有效。