我正在将这个NSURLConnection与代表一起使用。
nsconnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:YES];
问题是网站根本没有回应。没什么,只是在浏览器中旋转空白页面,没有失败。在我的代表中,我处理失败,但当网站没有响应时,代表不会被调用。关于如何超时连接的任何想法?
答案 0 :(得分:127)
您可以在NSURLRequest
对象中指定超时。一种方法是通过requestWithURL:cachePolicy:timeoutInterval:
方法构建它。 (如果您不想担心该部分,可以传入默认的NSURLRequestUseProtocolCachePolicy
cachePolicy参数。)超时是一个以秒为单位的浮点值,基本上是iPhone SDK中的所有时间间隔。 / p>
还要确保您的NSURLConnection
委托已设置并响应connection:didFailWithError:
方法。连接总是在连接完成时调用此方法或connectionDidFinishLoading:
。
答案 1 :(得分:24)
修改:此答案现已过时,但在回答之日是准确的。
我知道这个帖子已经老了,但我也遇到了这个问题。在服务所在的内部网络之外测试应用程序时会发生这种情况。该服务最终会超时,但Apple会在超时发生前指定240秒(4分钟)的时间。查看此主题以获取有关此事的更多信息。