如何等待NSURLConnection的某个状态

时间:2012-09-27 20:24:47

标签: iphone objective-c ios nsurlconnection nscondition

很抱歉打扰另一个NSURLConnection问题,已经在这里增加了一千多个。

方案如下。在使用动态加载的增强现实功能的iPhone应用程序中,系统会提示用户下载新的AR模型,因为这些模型可用。模型可以是几MB大,因此在决定之前应该向用户指示要下载的所有模型的总大小。

要了解每个文件的大小,我想使用异步NSURLConnection,然后在得到响应后停止下载([NSURLResponse expectedContentLength])。我可以在委托的连接中执行此操作:didReceiveResponse:method。

我的问题是,我怎么能等到这种情况出现?如何设置NSURLConnection,让它以异步方式启动,然后等到连接:didReceiveResponse:方法被调用?我已经尝试过使用NSCondition,让它在设置NSURLConnection之后等待,并在连接中:didReceiveResponse:方法发出信号。但所有这一切都是为了冻结主线程。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

也许您可以发送HEAD请求而不是GET。这可能取决于您的服务器设置,但这应该只为您提供标题,包括Content-Length。您应该能够使用NSMutableURLRequest,以便您可以更改请求方法,然后照常在响应中读取expectedContentLength。