我使用NSURLConnection的與我的局域網上的Web服務進行通信。當使用Xcode模擬器時,一切都按預期工作。但是,使用iPhone時,連接通常會超時(但並非總是)。NSURLConnection的間歇性故障iPhone設備上的LAN
iPhone是通過wifi連接到LAN。我可以一直使用Safari瀏覽Web服務器(託管Web服務)。
但是,該應用程序大多失敗。它返回didFailWithError
函數報告「請求超時」。
該應用程序將間歇性地成功(確切地表現如預期)。我看不到成功或失敗的模式。它可能會失敗多次,然後成功,然後再次失敗(無需重新啓動應用程序)。我估計有90%以上的失敗率。
網絡服務總是收到請求和總是迴應。看來設備沒有收到或處理響應失敗。
我可以看到我的網絡沒有明顯的問題。當然,沒有IP地址衝突。
我完全新的應用程序,蘋果的Xcode和iPhone。所以這對你來說可能是非常明顯的。任何想法,我可以看看解決這個問題?
我目前使用的開發環境如下:
- 的Mac OS X(10.7.4)
- 的Xcode 4(靶向4.3)
- 的iPhone 3GS(5.1.1)
是的,我的代碼是問題。手機wifi在當地的咖啡廳工作正常。 Safari一直在我的局域網上工作。我寫了一個快速簡單的測試應用程序(請求來自ws的文本響應),該應用程序一直運行。我的失敗應用程序有兩個視圖,每個視圖都有自己的NSURLConnection。雖然應用程序只有一個活動連接失敗,但我將首先將NSURLConnection代碼重構爲一個類。謝謝。答案接受,但任何進一步的提示讚賞例如我是否應該一次只運行一個查詢?它可以在模擬器上使用兩個,但... – Polly 2012-08-17 13:14:57
我在異步查詢並登錄每個委託方法。不涉及授權。我想我需要只有一個NSURLConnection的實例。這就是我現在要嘗試的。請說,如果這聽起來是一個合理的方向,或者如果還有其他事情想到。 – Polly 2012-08-17 13:28:11
是的,您使用一個NSURLConnection每個Web事務。在我的應用程序中,我實際上已經在NSOperationQueue中排隊了數百次提取,並且其工作完美。如果你想看到一個快速簡單的方法來看看https://github.com/dhoerl/NSOperation-WebFetches-MadeEasy - 這是一個簡單易用的技術,你可以找到。該項目構建了一個可以運行的演示應用程序。 – 2012-08-17 13:41:52