0

How do you tell when a request is finished (using ASIHTTPRequest)? Here is the code I am using:

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

...

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

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

}

However, when request is done, "The request is done" is never printed to the log. Am I doing something wrong? Thanks.

4

2 回答 2

1

也许你的连接失败了?在这种情况下,您应该测试 - (void)requestFailed:(ASIHTTPRequest *)request

您是否设置了请求委托?示例代码:

- (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];
}
于 2011-11-21T18:49:30.780 回答
0

我忘了将委托设置为自我。哎呀!

[request setDelegate:self];
于 2011-11-21T18:55:23.900 回答