5

AFJSONRequestOperation を使用して画像をアップロードしています。

多数の画像をアップロードする場合、一部のリクエストがタイムアウト エラーで失敗します。

私は試した

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

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

しかし、まだ運がありません。

オペレーションが作成された時点で時間のカウントが開始されると思います。

では、独自のアルゴリズムに対してリクエストを 1 つずつスケジュールする必要がありますか?

4

1 に答える 1

1

注目すべき興味深い点は、AFNetworking がシステムのリソースと同じ数の NSOperations を作成し、それらを同時に実行することです。問題は、アプリ/コンピューターが作成できる同時ネットワーク接続の数が非常に多いことです。動作開始と同時にカウントを開始します。iPhone では、複数の操作を実行するためのリソースが少ないため、実際には問題が発生しない可能性がありますが、シミュレーターは一度に数百のスレッドを実行できます (最大同時ネットワーク接続数よりもはるかに多い)。

私の提案は、同時操作の数 (AFHTTPClient にあると思います) をNSOperationQueueDefaultMaxConcurrentOperationCount、デバイスがリソースを持っている限り実行できるよりも合理的な数に制限することです。

于 2013-02-19T06:10:56.403 に答える