[英]MGTwitterEngine and iPhone
我下载了MGTwitterEngine并添加到我的iPhone项目中。 它可以连接并获取可以将它们转储到NSLog中的雕像。 但是,我无法弄清楚我需要如何解析调用,以便将它们添加到表中。 它们作为NSString返回,如下所示:
{
"created_at" = 2009-07-25 15:28:41 -0500;
favorited = 0;
id = 65;
source = "<a href=\"http://twitter.com/\">Twitter</a>";
"source_api_request_type" = 0;
text = "The wolf shirt strikes again!! #sdcc :P http://twitpic.com/blz4b";
truncated = 0;
user = {
"created_at" = "Sat Jul 25 20:34:33 +0000 2009";
description = "Host of Tekzilla on Revision3 and Qore on PSN. Also, a geek.";
"favourites_count" = 0;
"followers_count" = 0;
following = false;
"friends_count" = 0;
id = 5;
location = "San Francisco";
name = "Veronica Belmont";
notifications = false;
"profile_background_tile" = false;
"profile_image_url" = "http://blabnow.com/avatar/Twitter_10350_new_twitter_normal.jpg";
protected = 0;
"screen_name" = Veronica;
"statuses_count" = 2;
"time_zone" = UTC;
url = "http://www.veronicabelmont.com";
"utc_offset" = 0;
};
有人用这个可以告诉我其他人在他们的项目中如何使用它吗?
谢谢
您在控制台中看到的是NSDictionary的NSLog而不是NSString。 来自Matt Gemmell的MGTwitterEngine自述文件 :
发送到这些方法的值都是包含每个状态或用户或直接消息的NSDictionary的NSArrays,必要时包含子字典(例如,时间轴方法通常返回状态,每个状态都有一个子字典,提供有关发布该状态的用户)。
因此,无论您传递给NSLog()语句的对象实际上是一个字典,您都可以通过以下方式访问字段:
NSString *createdAtDate = [record valueForKey:@"created_at"];
NSString *source = [record valueForKey:@"source"];
// etc...
记录是对象的地方。 请记住, 用户字段是子字典。 你这样访问它:
NSDictionary *userDict = [record valueForKey:@"user"];
NSString *name = [userDict valueForKey:@"name"];
NSString *location = [userDict valueForKey:@"location"];
// etc...
实际上,您可以将请求中返回的NSArray用作表视图的数据源,然后在-cellForRowAtIndexPath表视图委托中提取索引所需的那个。
最好的祝福,
对于其他可能在这里找到自己的方式的人来说,这是分析结果的一种方法。 (来自新手,所以不要指望这是标准甚至是正确的方式)
密钥(双关语:D)是在适当的委托方法中使用字典。 查看Matt Long在该主题的另一个主题中的示例代码。
要做这样的事情:
[myTwitterEngine getSearchResultsForQuery:@"#ironsavior"];
他的例子就是这个,在委托方法中:
- (void)searchResultsReceived:(NSArray *)searchResults
forRequest:(NSString *)connectionIdentifier
{
if ([searchResults count] > 0)
{
NSDictionary *result = [searchResults objectAtIndex:0];
NSString *fromUser = [result valueForKey:@"from_user"];
NSString *fromUserID = [result valueForKey@"from_user_id"];
// ...
NSString *text = [result valueForKey@"text"];
NSLog(@"User %@(%@): %@", fromUser, fromUserID, text);
}
}
这将为您提供一条非常简单的消息“User username(userid):message”。
我不确定最好的方法是什么,我正在考虑返回一个你可以在实现中使用的字典或数组。 或者只返回原始数组并在其他地方解析它。
查看其他线程以获取更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.