我使用的是NSMutableURLRequest连接到一个网站,以获得一个JSON响应。我通过生成请求,然后使用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,这将有助于在任何其他委托方法。我没有手动检查超时,是吧?是否超时仅适用于同步请求?

有帮助吗?

解决方案

您超时在该方法中接收到的:

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

其他提示

U将BR接收到这种类型的iofo:

在没有失败,并

  

错误:错误域= NSURLErrorDomain代码= -1001的UserInfo = 0xed4870   “超时”

在超时行为有点古怪,看到苹果的开发者论坛的主题

我所做的就是这样的:

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
    if (error.code == -1001){
        [self showTimeoutAlert];//My method to show dialog with timeout message.
    } else {
        [self showInvalidURLAlert];//My method to show dialog with bad URL message.
    }
}

正如以前所述,-1001为超时,在其它测试中,我得到-1003(不良URL或无连接avaliable)。

我的目标对待超时所以什么事我当作错误的URL。

把一些日志语句中的每个方法,并检查他们所付出的。当时间到,你肯定可以获得有关超时在控制台上的通知。我收到该通知。检查你的代码,如果你仍然有问题,让我们知道。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top