0

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

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

为了找出每个文件有多大,我想使用异步 NSURLConnection,但是一旦我得到响应([NSURLResponse expectedContentLength])就停止下载。我可以在委托的 connection:didReceiveResponse: 方法中执行此操作。

我的问题是,我怎样才能等到这种情况出现?如何设置 NSURLConnection,让它异步启动,然后等到 connection:didReceiveResponse: 方法被调用?我尝试使用 NSCondition,在设置 NSURLConnection 并在 connection:didReceiveResponse: 方法中发出条件信号后让它等待。但这所做的只是冻结了主线程。有任何想法吗?

4

1 回答 1

1

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

于 2012-09-27T21:03:55.380 回答