동시에 서버에서 일부 정보를 다운로드하고 NSOperatioQueue 같은 사용하고 있습니다. 나는 문제가있다. 예를 들어 다운로드 작업이 어떤 이유로 실패하면 대기열에서 해당 작업을 제거하지 않으려합니다.NSOperation 및 NSOperationQueue
지금 당장 서버에서 응답을 받자 마자 실패합니다. 작업은 대기열에서 제거됩니다.
특정 작업이 논리적으로 완료되지 않고 대기열에 있어야한다는 것을 큐에 알리는 방법이 있습니까?
제 경우에는 일련의 정보를 다운로드하고 있습니다. 예를 들어 카운티의 모든 장소를 가져온 다음 각 카운티의 모든 주택을 가져옵니다. 따라서 사용자가 유효한 토큰으로 로그인하지 않은 경우 카운티를 다운로드 할 수없는 경우가 있습니다. 이 경우 서버는 실패 메시지를 리턴합니다. 사용자가 응용 프로그램에 로그인 할 때 다시 시도 할 수 있도록 대기열에 이러한 항목을 보관하려고합니다.
샘플 코드 downloadQueue는 NSOperationQueue 및 DownloadOutlets입니다
self.downloadQueue.maxConcurrentOperationCount = 1;
for(Campaign *campaign in campaigns)
{
isContentUpdated = false;
if(self.operation)
self.operation = Nil;
self.operation = [[DownloadOutlets alloc] initWithCampaign:campaign];
[self.downloadQueue addOperation:operation];
}
는 NSOperation을 확장합니다. 감사합니다.
작업을 어떻게 설정합니까? 몇 가지 코드 예제를 보여줍니다. –
무엇을 의미합니까? 성공 또는 실패 여부와 상관없이 모든 코드를 이미 실행 한 경우 대기열에 작업을 유지하는 이유는 무엇입니까? – micantox
제 경우에는 일련의 정보를 다운로드하고 있습니다. 예를 들어 카운티의 모든 장소를 가져온 다음 각 카운티의 모든 주택을 가져옵니다. 따라서 사용자가 유효한 토큰으로 로그인하지 않은 경우 카운티를 다운로드 할 수없는 경우가 있습니다. 이 경우 서버는 실패 메시지를 리턴합니다. 나는 이러한 항목을 대기열에 보관하고 싶습니다. – Zach