웹 사이트에서 파일을 다운로드 할 수있는 iOS 앱이 있습니다. 나는 그들을 관리하기 위해 Downloads
클래스에 NSURLSession
을 만들었습니다. Downloads
클래스에는 DownloadItem
개체를 사용하여 현재 및 이전 다운로드를 모두 추적하는 NSMutableArray
이 있습니다. 나는이 설정에 만족하지 않는다.여러 개의 NSURLSessionTasks 구성
현재 모든 다운로드의 대표자로 Downloads
클래스가 있어야합니다. 각 NSURLSessionDownloadTask
의 대표를 DownloadItem
개체에 할당 할 방법이 없습니다. 그래서, 내 Downloads
개체에 할당 된 유지하고 다음 메시지를 전달하는 방법을 DownloadItem
알아 내야합니다.
현재 Downloads
에 tasksDictionary
이라는 NSMutableDictionary를 만들고 taskIdentifier
을 키로 사용합니다.
return [self.tasksDictionary objectForKey:[NSNumber numberWithInteger:task.taskIdentifier]];
이것은 작동하는 것처럼 보이지만 가장 효율적인 방법으로 보이지 않습니다. 또한 작성한 첫 번째 작업 식별자가 0
이라는 사실을 알았 기 때문에 완성 된 작업과 첫 번째 작업의 차이를 구분하기가 어려울 것으로 우려됩니다.
이러한 정보를 더 잘 추적 할 수있는 방법이 있습니까? 새로운 델리게이트를 태스크에 할당하는 방법이 있습니까? 당신이 완료되면
NSMutableArray *completedDownloads;
NSMutableDictionary *activeDownloadTasks; // @(taskID) => DownloadItem
, activeDownloadTasks
에서 DownloadItem
팝업 completedDownloads
에 추가 :
이것은 내가 뭐하는 거지 본질적를하지만 난 확인을 가지고 좋은 옳은 일을하는 것. –