我对NSURLConnection有一个奇怪的问题。我已经将连接时间设置为20秒。
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];
NSURLConnection *con= [[NSURLConnection alloc] initWithRequest:request delegate:self];
我也正在为NSURLConnection实现委托方法。
现在,当我运行应用程序时,连接在20秒后没有超时,但是在2-3分钟之后,它给出了“没有互联网连接”的错误。是不是应该在20秒后发出超时错误?
答案 0 :(得分:2)
对timeoutInterval的讨论表明,当发生加载活动的过程时,它会启动(设置为0):
超时间隔指定 限制空闲 在加载过程中分配给一个请求的间隔。 “闲着 interval“定义为自...以来经过的时间段 最后一个加载活动实例发生在 装货过程。因此,当发生加载活动的实例时 (例如,从网络接收请求的字节),空闲 请求的间隔重置为0.如果空闲间隔有 变为大于或等于超时间隔,请求 被认为已超时。测量此超时间隔 在几秒钟内。
没有互联网连接是错误的。因此,如果获得连接但是需要更多时间来加载,超时实际上可能在20秒(设定时间)内发生......