我真的不知道如何处理 iOS5 Twitter API TWRequest performRequestWithHandler。我在我的 .h 文件中声明了 NSMutableArray *parsedTimeLine 的实例变量和 -(void) fetchWebData: (NSString *) screenName; 的方法签名。
上述方法实现在这里:
-(void) fetchWebData: (NSString *) screenName {
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:screenName forKey:@"screen_name"];
[params setObject:@"f" forKey:@"include_entities"];
[params setObject:@"f" forKey:@"include_rts"];
[params setObject:@"10" forKey:@"count"];
[params setObject:@"t" forKey:@"trim_user"];
[params setObject:@"f" forKey:@"contributor_details"];
[params setObject:@"t" forKey:@"exclude_replies"];
NSURL *url = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/user_timeline.json"];
TWRequest *request = [[TWRequest alloc] initWithURL:url
parameters:params
requestMethod:TWRequestMethodGET];
[request performRequestWithHandler:
^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if (responseData) {
NSError *jsonError;
parsedUserTimeLine =[NSJSONSerialization JSONObjectWithData:responseData
options:NSJSONReadingMutableLeaves
error:&jsonError];
NSLog(@"jsonArray result count inside request: %d",parsedUserTimeLine.count);
NSLog(@"jsonArray values inside request: %@", parsedUserTimeLine);
}
}];
NSLog(@"jsonArray result count outside request: %d",parsedUserTimeLine.count);
NSLog(@"jsonArray values outside request: %@", parsedUserTimeLine);
}
这工作正常,但有一个奇怪的事情我真的想不通。我在请求方法中的 2 个 NSLogs 显示了 parsedUSerTimeline 的准确计数值和数组内容。但是我的 2 NSLogs OUTSIDE THE REQUEST 方法显示
-jsonArray 请求外的结果计数:0 -jsonArray 请求外的值:(null)
此外,在调用 fetchWebData 方法后,我在 viewDidLoad 中检查了 parsedUserTimeLine 的值,显示 count = 0 和 value = null。
请帮我解决这个问题。我需要全局访问 parsedUserTimeLine 的值。提前致谢。