2011-01-11 44 views
8

我试图断开或停止在15秒内加载URL请求,当互联网连接断开连接时。我尝试在NSURLRequest中使用setTimeoutInterval,这不起作用。任何人都可以知道如何解决这个问题?如何在iPhone中的NSURLRequest中设置超时

回答

14

下面是一个例子为您:

NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:link]   
       cachePolicy:NSURLRequestUseProtocolCachePolicy 
       timeoutInterval:20.0]; 

这里有一个20秒的超时间隔。

+0

我试过timeoutInterval:20.0,但它不适合我。有什么需要做的? – sri 2011-01-12 06:03:21

2

从我所经历的情况来看,Oleg的这个例子不起作用。我想你正面临与我一样的问题,从我在线阅读的内容来看,也许这种解决方案也适用于你。

使用NSTimer,将计时器设置为从webViewDidStartLoad委托方法开始,然后确保在webViewDidFinishLoad和webViewDidStarLoad方法中有计数器来检查webView是否已加载(这是一种丑陋的黑客攻击,但除​​非您使用javascript检查页面中元素的数量,实际上没有办法知道这两种方法将被调用多少次)。

这样做后,请在定时器到达时间后,按照您正在运行的方法检查计数器,这应该可以工作。

的的NSTimer代码是在这里 - >http://www.iphonedevsdk.com/forum/iphone-sdk-development/14403-nstimer-examples.html

希望这有助于它为我做的。虽然我知道存在缺陷,但它适用于我,因为我正在加载首先应该是轻量级的闪屏。尽管如此,我仍在寻找解决方案,如果我有其他选择,我会在这里发布编辑。

反馈非常欢迎!