2013-02-15 28 views
5

Sto usando AFJSONRequestOperation per caricare le immagini.Timeout per AFNetworking

In caso di caricamento di numeri di immagini, alcune richieste non sono riuscite con l'errore di timeout.

ho cercato

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

e

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

Tuttavia, ancora senza fortuna.

Penso che il conteggio del tempo inizi quando viene creata l'operazione.

Quindi, devo pianificare le richieste una per una per il mio algoritmo?

risposta

1

Qualcosa di interessante da notare è che AFNetworking creerà tante NSOperations quante risorse del sistema hanno e le eseguiranno contemporaneamente. Il problema è che ci sono così tante connessioni di rete simultanee che l'app/computer può fare. Il conteggio inizia non appena inizia l'operazione. Per tutti gli scopi pratici, sull'iPhone potresti non vedere i problemi poiché ci sono meno risorse per eseguire più operazioni, ma il simulatore può eseguire centinaia di thread alla volta (molti di più delle connessioni di rete simultanee).

Il mio suggerimento è di limitare il numero di operazioni simultanee (che si trova in AFHTTPClient credo) a qualcosa di più ragionevole di NSOperationQueueDefaultMaxConcurrentOperationCount che consente al dispositivo di eseguire il numero di risorse.

+0

Potresti essere interessato a questo bug, quindi: https://github.com/AFNetworking/AFNetworking/issues/953 –

+0

Un'altra opzione è rendere ogni operazione dipendente dall'operazione precedente. –