【发布时间】:2010-11-18 04:03:40
【问题描述】:
我正在使用 NSMutableURLRequest 连接到网站以获取 JSON 响应。我这样做是通过生成请求,然后使用带有 self 委托的 NSURLConnection 来处理异步连接。我已经实现了所有正常的委托方法:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
在取回数据、处理发生的任何错误等方面都可以完美运行。但是,由于 NSURLRequest 的超时设置为 10 秒,我似乎没有在这些方法中被调用(我预计 didFailWithError 会被调用)。它只是永远坐在那里,我没有通知它超时。
阅读 iPhone API 文档,我没有看到任何关于超时发生时应该发生什么的提及,只是您可以设置超时值。应该发生什么?我在 API 中没有看到任何其他有帮助的委托方法。我不必手动检查超时,对吗?是否仅针对同步请求超时?
【问题讨论】:
-
我同意 Corey 我应该在 didDailWithError 方法中获取它,但它永远不会被调用。该方法中的断点和日志都显示它永远不会因超时而被调用。
-
对于更多上下文,如果它有所作为,我正在使用stackoverflow.com/questions/332276/… 的答案中谈到的方法来跟踪我有未完成的连接。
-
我看起来这可能是 3.0 的 beta SDK 中的一个错误,因为一旦最终版本发布,它就会按预期工作。
标签: iphone timeout nsurlconnection nsurlrequest