NSOperationQueue 및 AFNetworking을 사용하여 프로젝트에 대한 다중 다운로드 기능을 구현하고 있습니다. 코어 데이터를 사용하여 다운로드 한 정보를 유지하지만 그 부분은 정상입니다. 내 문제는 실제로 다운로드 작업을 만들 때입니다. 그래서 여기 내가 어떻게 그랬는가 :iOS에서 NSOperationQueue 및 AFNetworking을 사용하여 멀티 다운로드 기능 구현
// create a NSOperationQueue
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
queue.name = @"DownloadQueue";
queue.maxConcurrentOperationCount = 1;
// create an operation (AFDownloadRequestOperation is a subclass of AFHTTPRequestOperation)
AFDownloadRequestOperation *operation = // some initializations
// add the operation to the queue
[queue addOperation:operation];
// later some more operations are created and added to the queue
그런 다음 내가 큐에 3 가지 작업을 추가했다고 가정 해 봅시다. I 큐 그렇게 만 1 개 동작 (1)에 maxConcurrentOperationCount
을 설정하기 때문에 실행되고, 다른 2 기다리는 :
operation 1: running
operation 2: waiting
operation 3: waiting
는 그때 실행중인 작업을 일시 중지 (AFURLConnectionOperation
방법이다) pause
를 사용 , 나는 실행 시작이 대기 작업 중 하나를 볼 것으로 예상하지만, 2 개 대기 작업이 대기 남아 발생하지 않습니다 : 다음, 나는 아직도이 완료 될 때까지 작업 1을 재개하고 기다릴 필요가 작동
operation 1: paused
operation 2: waiting
operation 3: waiting
2 또는 3이 실행을 시작합니다.
내 질문은 위에서 설명한 것처럼 실행중인 작업을 일시 중지 한 후에 실행중인 큐에서 다른 작업을 수행하는 방법입니다. 당신은 멀티 다운로드를 구현하는 더 나은 방법을 설명 할 수있는 경우
또한, 나는 그것이 대단히 감사하겠습니다 (특히 다운로드 작업, 일시 정지/다시 시작 다운로드 작업의 최대 수를 관리하기 위해 관련)