9

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

4

2 回答 2

14

这是一个例子:

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

在这里,您有 20 秒的超时间隔。

于 2011-01-11T07:30:13.870 回答
2

根据我的经验,Oleg 的这个例子是行不通的。我想你和我面临同样的问题,从我在网上阅读的内容来看,也许这个解决方案也对你有用。

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

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

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

希望这会有所帮助,它对我有用。虽然我知道存在缺陷,但它对我有用,因为我正在加载一个初始屏幕应该是轻量级的。不过,我仍在寻找解决方案,如果我有其他选择,我会在此处发布编辑。

非常欢迎反馈!

于 2012-06-22T04:44:39.747 回答