2011-01-11 41 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

希望這有助於它爲我做的。雖然我知道存在缺陷,但它適用於我,因爲我正在加載首先應該是輕量級的閃屏。儘管如此,我仍在尋找解決方案,如果我有其他選擇,我會在這裏發佈編輯。

反饋非常歡迎!