我有一個iPad應用程序,我使用NSURLConnection進行異步調用。在某些情況下,我會收到連接中的所有響應數據:didReceiveData:,但是connectionDidFinishLoading永遠不會被稱爲。沒有錯誤。這有些隨意,因爲在其他時間完成相同的迴應。NSURLConnection connectionDidFinishLoading不隨機調用
,我的類的工作方式是,大約20個請求在使用行發送:
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
然後我就等着他們回來。這是創建多個請求的有效方法嗎?
以下是未完成回覆的示例標題。與完成的響應的標題無法區分。問題的
>Keep-Alive: timeout=5, max=100
>Transfer-Encoding: Identity
>Server: Apache/2.2.9 (Unix) mod_ssl/2.2.9 OpenSSL/0.9.8b mod_jk/1.2.26
>Content-Type: application/json;charset=UTF-8
>Connection: Keep-Alive
>Date: Wed, 03 Apr 2013 05:25:32 GMT
>Cache-Control: private, no-transform, max-age=600
一個奇怪的現象是,我開始檢查使用預期的內容長度:
long long download_size =[response expectedContentLength];
內容長度的HTTP頭永遠不會設置。當請求失敗時,download_size爲-1(預期),當相同的請求沒有失敗時,download_size被設置爲某個數字。但是,在很多情況下,download_size沒有設置,並且響應也沒有失敗。
你是在主線程上執行此操作嗎? –