我正在使用NSMutableURLRequest連接到網站以獲取JSON響應。我這樣做是通過生成請求,然後使用NSURLConnection和self的委託來處理異步連接。我實現了所有正常委託方法:使用委託時超時處理NSURLRequest
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
所有與獲取數據回完美的作品,處理出現的任何錯誤,等等。然而隨着對的NSURLRequest超時設置爲10秒我似乎並沒有在這些方法中調用(我期望didFailWithError被調用)。它只是永遠坐在那裏,我沒有通知它超時。
閱讀iPhone API文檔我沒有看到什麼應該在超時發生時發生,只是您可以設置超時值。應該發生什麼?我沒有看到API中的其他委託方法可以提供幫助。我不必手動檢查超時,是嗎?超時只用於同步請求嗎?
我同意Corey應該在didDailWithError方法中獲得它,但它永遠不會被調用。該方法中的斷點和日誌顯示它永遠不會被調用超時。 – Parrots 2009-08-27 15:50:44
對於更多的上下文,如果它有所作爲,我使用的方法在http://stackoverflow.com/questions/332276/managing-multiple-asynchronous-nsurlconnection-connections的回答中討論了連接I有突出的。 – Parrots 2009-08-27 15:56:00
我看起來像這可能是在3.0的測試版SDK中的錯誤,因爲只要最終發佈它按預期工作。 – Parrots 2010-01-12 18:16:06