2014-02-04 3 views
7

Я имею дело с приложением, которое реализует очередь загрузки, созданную с помощью AFNetworking 2.0, и мне будет интересно узнать, есть ли способ ограничить максимальное количество задач загрузки (NSURLSessionDownloadTask) работает одновременно.AFNetworking 2: Ограничить максимальное количество одновременных загрузок Задачи

Моя конечная цель заключается в том, что моя очередь загрузки управляет всеми задачами, поэтому один из них завершен, затем начинается следующий.

Я знаю, что, например, NSOperationQueue имеет свойство maxConcurrentOperationCount, но я не знаю, использует ли AFNetworking 2.0 NSOperationQueue на более низком уровне с задачами загрузки. Кроме того, я знаю, что AFURLSessionManager имеет NSArray со всеми запущенными задачами загрузки, но это просто массив.

Благодаря

ответ

13

AFNetworking имеет очередь работы, которую вы можете установить количество одновременных операций

[[self.requestOperationManager operationQueue] setMaxConcurrentOperationCount:2]; 

это работает отлично для загрузки и просит

Примечание: хороший метод, который я использую , должен иметь 2 сетевых менеджера, один для общих запросов, который имеет setMaxConcurrentOperationCount 1 (мне нужно, чтобы мои запросы выполнялись последовательно) и загрузчик, который установилMaxConcurrentOperationCount равным 2

+0

Спасибо, это сработало! :) Я не понимал, что задачи загрузки считаются операциями в AFNetworking. – WedgeSparda

+0

i хорошая техника, которую я использую, состоит в том, чтобы иметь 2 сетевых менеджера, один для обычных запросов, который имеет setMaxConcurrentOperationCount 1 (мне нужно, чтобы мои запросы выполнялись последовательно) и загрузчик, который установил setMaxConcurrentOperationCount равным 2 –

Смежные вопросы