如何在iphone中设置NSURLRequest的超时时间

时间:2011-01-11 05:31:25

标签: objective-c nsurlrequest

当互联网连接断开连接时,我试图在15秒内断开或停止加载URL请求。我尝试使用NSURLRequest中的setTimeoutInterval,但这不起作用。谁能知道如何解决这个问题?

2 个答案:

答案 0 :(得分:14)

以下是您的示例:

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

这里有20秒的超时间隔。

答案 1 :(得分:2)

根据我的经验,Oleg的这个例子是行不通的。我想你和我一样面临着同样的问题,也就是我在网上看到的,也许这个解决方案对你也有用。

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

执行此操作后,请在计时器到达时间后检查您正在运行的方法的计数器,这应该有效。

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

希望这会有所帮助,它对我有用。虽然我知道存在缺陷,但它对我来说很有用,因为我正在加载一个首先应该是轻量级的闪屏。我仍然在寻找解决方案,如果我有其他选择,我会在这里发布编辑。

非常欢迎反馈!