使用委托当处理一个的NSURLRequest与超时(Handling a NSURLRequest

2019-07-31 18:22发布

我使用的是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,这将有助于在任何其他委托方法。 我没有手动检查超时,是吧? 仅用于同步请求超时?

Answer 1:

您超时收到这个方法:

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


Answer 2:

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

在没有失败

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



Answer 3:

超时行为是一个有点古怪,看到这个线程苹果的开发者论坛。



Answer 4:

我所做的是这样的:

- (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来治疗超时。



Answer 5:

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



文章来源: Handling a NSURLRequest with timeout when using delegate