2010-06-21 35 views
0

我這裏有一些代碼:NSURLConnection的掛在recieving沒有太大的量OD數據

(...) 
NSURLConnection *theConnection = [[NSURLConnection alloc] 
       initWithRequest:theRequest delegate:self]; 
if(theConnection) 
{ 
    webData = [[NSMutableData data] retain]; 
} 

和委託方法:

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{ 
    NSLog(@"zero"); 
    [webData setLength: 0]; 
} 

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    NSLog(@"got %d", [data length]); 
    [webData appendData:data]; 
} 

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 
{ 
    NSLog(@"ERROR with theConenction"); 
    [connection release]; 
    [webData release]; 
} 

-(void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 

    NSLog(@"DONE. Received Bytes: %d", [webData length]); 
    [connection release]; 
    [webData release];  
} 

它的工作原理相當不錯,直到更多的數據已經到來。 比NSURLConnection「停止工作」(沒有錯誤,沒有例外,沒有退出)。我仍然可以使用我的應用程序。 我注意到這個問題開始時didReceiveData被在連接過程中調用一次以上。

它看起來像一步步從調試器:

1. I call theRequest 
2. Delegate call didReceiveResponse 

2010-06-21 18:10:16.708 MyApp的[9477:207]爲零

3. Delegate call didReceiveData 

2010-06-21 18:10:16.709 MyApp的[9477:207]得到6912

(GDB)繼續

4. Delegate call didReceiveData (once again) 

2010-06-21 18:10:18.027 MyApp的[9477:207]得到114067

(GDB)繼續

--> and here is the problem <-- 

主循環繼續,沒有斷點,connectionDidFinishLoading不被調用。 didRecieveData只被調用一次就一切正常。

5. Delegate call didFailWithError (after 5 min!) 

2010-06-21 18:15:18.041 MyApp的[9477:207]誤差theConenction 連接失敗!錯誤 - 操作無法完成。由對等

(GDB)連接復位繼續

=============== UPDATE ================= ===

最後,我發現了一件重要的事情:真正的問題是遠程主機有時(即大量的數據)沒有以適當的方式完成連接,所以委託connectionDidFinishLoading不能被調用, 5分鐘後遠程主機重置連接。

有沒有人的問題太多,可以幫助?

+0

您是否嘗試從另一臺服務器加載數據的一大塊問題?這個特定的服務器是相關的嗎?使用POST請求時,iPhone SDK的默認計時器非常長。無論你輸入什麼,它都會保持很長時間。我最終做出了自己的計時器。 – krzyspmac 2010-12-22 16:17:27

回答

0

如果你把斷點,沒有說哪裏它已經停止?

+0

有斷點,但有些圈後,與斷點和XCode的通知欄中沒有反應凍結顯示「運行......」 但什麼是重要的程序的主線程不freze - 我可以用我的應用程序 – konradowy 2010-06-21 15:54:28

相關問題