如何判断请求何时完成(ASIHTTPRequest)?
问题描述:
如何判断请求何时完成(使用ASIHTTPRequest)?以下是我正在使用的代码:如何判断请求何时完成(ASIHTTPRequest)?
[request setDidFinishSelector:@selector(requestFinished:)];
...
-(void)requestFinished:(ASIHTTPRequest *)request {
NSLog(@"The request is done.");
}
但是,当请求完成时,“请求已完成”永远不会打印到日志中。难道我做错了什么?谢谢。
答
我忘了将代理设置为self。哎呀!
[request setDelegate:self];
答
也许您的连接失败?在这种情况下,您应该测试 - (void)requestFailed:(ASIHTTPRequest *)请求
您是否设置了请求委托?示例代码:
- (IBAction)grabURLInBackground:(id)sender
{
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
// Use when fetching binary data
NSData *responseData = [request responseData];
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
也许你忘了将代表设置为接收对象(例如self)? – Till
@Till Whoops,就是这样。谢谢! –