2013-02-15 24 views
5

我正在使用AFJSONRequestOperation上傳圖像。AFNetworking的超時

在上傳圖片數量的情況下,一些請求失敗,出現超時錯誤。

我試圖

AFJSONRequestOperation *operation = ... 
[operation start]; 

AFJSONRequestOperation *operation = ... 
[operations addObject:operation]; 
... 
[client enqueueBatchOfHTTPRequestOperations:operations progressBlock:nil completionBlock:nil]; 

但是,仍然沒有運氣。

我認爲時間計數從操作創建時開始。

那麼,我是否應該爲自己的算法逐個安排請求?

回答

1

有趣的是,AFNetworking將創建儘可能多的NSOperations,因爲系統具有並行運行的資源。問題是應用程序/計算機只能同時連接很多網絡連接。計數在操作開始後立即開始。出於所有實際的目的,在iPhone上您可能看不到問題,因爲運行多個操作的資源較少,但模擬器一次可運行數百個線程(比最大併發網絡連接多很多)。

我的建議是限制併發操作的數量(位於AFHTTPClient,我認爲)比NSOperationQueueDefaultMaxConcurrentOperationCount更合理,它允許設備運行儘可能多的資源。

+0

你可能會對這個bug感興趣,那麼:https://github.com/AFNetworking/AFNetworking/issues/953 – 2013-05-09 21:09:43

+0

另一個選擇是讓每個操作都依賴於以前的操作完成。 – 2014-02-22 04:14:39

相關問題