【问题标题】:How to tell when a request is done (ASIHTTPRequest)?如何判断请求何时完成(ASIHTTPRequest)?
【发布时间】:2011-11-21 18:44:21
【问题描述】:

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

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

...

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

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

}

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

【问题讨论】:

  • 也许你忘记将委托设置为接收对象(例如 self)?
  • @Till 哎呀,就是这样。谢谢!

标签: iphone ios ipad asihttprequest cfnetwork


【解决方案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];
}

【讨论】:

    【解决方案2】:

    我忘记将委托设置为 self。糟糕!

    [request setDelegate:self];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-12
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      相关资源
      最近更新 更多