Каковы наилучшие методы для создания последовательной очереди NSURLSessionTasks
?
В моем случае мне нужно:
- Получить URL-адрес внутри файла JSON (
NSURLSessionDataTask
) - Загрузите файл по этому URL-адресу (
NSURLSessionDownloadTask
)
Вот что я до сих пор:
session = [NSURLSession sharedSession];
//Download the JSON:
NSURLRequest *dataRequest = [NSURLRequest requestWithURL:url];
NSURLSessionDataTask *task =
[session dataTaskWithRequest:dataRequest
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
//Figure out the URL of the file I want to download:
NSJSONSerialization *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSURL *downloadURL = [NSURL urlWithString:[json objectForKey:@"download_url"]];
NSURLSessionDownloadTask *fileDownloadTask =
[session downloadTaskWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:playlistURL]]
completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
NSLog(@"completed!");
}];
[fileDownloadTask resume];
}
];
Кроме того, что запись блока завершения в другом завершении выглядит беспорядочно, я получаю ошибку EXC_BAD_ACCESS при вызове [fileDownloadTask resume]
... Даже если fileDownloadTask
не нуль!
Итак, что лучше всего подходит для последовательности NSURLSessionTasks
?