2011-11-21 80 views
0

如何判断请求何时完成(使用ASIHTTPRequest)?以下是我正在使用的代码:如何判断请求何时完成(ASIHTTPRequest)?

[request setDidFinishSelector:@selector(requestFinished:)]; 

... 

-(void)requestFinished:(ASIHTTPRequest *)request { 

    NSLog(@"The request is done."); 

} 

但是,当请求完成时,“请求已完成”永远不会打印到日志中。难道我做错了什么?谢谢。

+2

也许你忘了将代表设置为接收对象(例如self)? – Till

+0

@Till Whoops,就是这样。谢谢! –

回答

0

我忘了将代理设置为self。哎呀!

[request setDelegate:self]; 
1

也许您的连接失败?在这种情况下,您应该测试 - (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]; 
} 
相关问题