使用ASIHTTPRequest时,为什么活动指示器永远不会完成?

时间:2010-11-02 17:50:18

标签: iphone asihttprequest

我使用ASIHTTPRequest在我的iPhone应用程序中执行http请求。 ASIHTTPRequet附带该功能,可在发出请求时启动活动指示器,并在完成时停止。问题是,一旦我开始请求,只要我的应用程序运行,指示器就不会停止并继续旋转。

这是我的代码,一个小实用程序方法,可以同步从Web中获取一些内容(因为它是在另一个线程中启动的):

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL: [NSURL URLWithString: url]];
[request startSynchronous];

NSError *error = [request error];
NSString *response = nil;

if (error) {
    NSLog(@"error %@", error);
    return nil;
}

int statusCode = [request responseStatusCode];
response = [NSString stringWithString: [request responseString]];
NSLog(@"status code: %d response: %@", statusCode, response);

if (statusCode != 200) {
    return nil;
}

return response;

上面的代码工作正常,我得到给定URL的内容作为NSString只有指标保持旋转。我的问题是:为什么指标永远不会停止以及如何解决?我必须在这里发布一些资源吗?

2 个答案:

答案 0 :(得分:3)

这是最近在ASIHTTPRequest的开发版本中修复的错误:

http://github.com/pokeb/asi-http-request/commit/35ea592084145b3332861344f36b52dbcaafa351

(它只影响在辅助线程上启动的同步请求)

答案 1 :(得分:0)

您是否可以使用异步请求尝试相同的操作,看看是否会更改它?我使用ASIHTTPRequest并且我从未注意到这种行为,但我也从不使用同步请求。