2011-08-05 48 views
0

我正在使用NSURLConnection從服務器加載數據。所以,在我的Iphone應用程序中有一個按鈕,當點擊這個按鈕並且互聯網連接被連接時,數據將被成功加載。但後來當我關閉Mac上的互聯網連接,然後再次單擊該按鈕時,didFailWithError方法未被調用,但其他方法(如didReceiveResponse,connectionDidFinishLoading)被調用。NSURLConnection - didFailWithError未被調用

之前有人遇到過這種問題嗎?或者有人知道這個問題的原因?

非常感謝任何意見,建議和解決方案。謝謝。

+0

您通過連接關閉了什麼樣的響應? – zoul

+0

你確定你的連接不可用嗎?禁用網絡後檢查瀏覽器 – visakh7

回答

0

奇怪的行爲,特別是因爲你關閉了互聯網,但委託仍然要求** connectionDidFinishLoading **這是可能的?你還寫了什麼「當點擊這個按鈕和互聯網連接已連接」你的代碼仍然啓動連接沒有互聯網?

這是可能的,你配置使用緩存的數據,這就是爲什麼你有這樣的奇怪行爲。

* nix系統默認超時連接BSD套接字,可能不會告訴你什麼連接錯過。但我認爲Mac OS/iOS配置了這種情況。

+0

嗨,對於「點擊此按鈕並連接互聯網連接」時,意味着當用戶點擊該按鈕時,當互聯網連接時,數據將從服務器。並且對於「* nix系統默認超時連接BSD套接字,這可能不會告訴你任何連接錯過了,但我認爲Mac OS/iOS配置了這種情況。」你能解釋一下嗎?那麼你對這個問題有什麼解決方案或建議嗎? – Kate

+0

我可能會建議使用計時器,它會查看標誌,該標誌包含關於何時接收到最後數據的信息,如果超時,則會終止連接並通知錯誤。 –

+0

好的。真的非常感謝您的幫助!我會嘗試。 :-D – Kate

1

在更改代碼中的任何行之前,先用4.3模擬器然後使用5.0進行相同的測試。

我試過類似的東西(請求URL和連接關閉沒有響應),並使用4.3,didFailWithError被調用。在5.0中,我得到一個didReceiveResponse,狀態碼爲200 OK (!),然後是connectionDidFinishLoading。相同的代碼,相同的請求,不同的操作系統版本...

相關問題