NSURLSessionDownloadDelegate
NSURLSessionDownloadDelegate
протокол определяет методы делегата, при использовании которых необходимо реализовать NSURLSession
задачи загрузки. В дополнение к этим методам, убедиться реализовать методы в NSURLSessionTaskDelegate
и NSURLSessionDelegate
протоколы для обработки событий, характерных для всех типов задачи и событий сеансового уровня, соответственно.
Наследование
Не применимый
Соответствует
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.9 и позже.
-
URLSession (_: downloadTask:didResumeAtOffset:expectedTotalBytes:) - URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:
ТребуемыйГоворит делегату, что задача загрузки продолжила загружать. (требуемый)
Объявление
Swift
optional func URLSession(_
session
: NSURLSession, downloadTaskdownloadTask
: NSURLSessionDownloadTask, didResumeAtOffsetfileOffset
: Int64, expectedTotalBytesexpectedTotalBytes
: Int64)Objective C
- (void)URLSession:(NSURLSession *)
session
downloadTask:(NSURLSessionDownloadTask *)downloadTask
didResumeAtOffset:(int64_t)fileOffset
expectedTotalBytes:(int64_t)expectedTotalBytes
Параметры
session
Сеанс, содержащий закончившуюся задачу загрузки.
downloadTask
Возобновившаяся задача загрузки. Посмотрите объяснение в обсуждении.
fileOffset
expectedTotalBytes
Ожидаемая длина файла, в соответствии с
Content-Length
заголовок. Если этот заголовок не был предоставлен, значениеNSURLSessionTransferSizeUnknown
.Обсуждение
Если resumable задача загрузки отменяется или перестала работать, можно запросить a
resumeData
объект, предоставляющий достаточно информации для перезапуска загрузки в будущем. Позже, можно вызватьdownloadTaskWithResumeData:
илиdownloadTaskWithResumeData:completionHandler:
с теми данными.При вызове тех методов Вы получаете новую задачу загрузки. Как только Вы возобновляете, что задача, сеанс вызывает своего делегата
URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:
метод с той новой задачей указать, что возобновляется загрузка.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
URLSession (_: downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:) - URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:
ТребуемыйПериодически сообщает делегату о прогрессе загрузки. (требуемый)
Объявление
Swift
optional func URLSession(_
session
: NSURLSession, downloadTaskdownloadTask
: NSURLSessionDownloadTask, didWriteDatabytesWritten
: Int64, totalBytesWrittentotalBytesWritten
: Int64, totalBytesExpectedToWritetotalBytesExpectedToWrite
: Int64)Objective C
- (void)URLSession:(NSURLSession *)
session
downloadTask:(NSURLSessionDownloadTask *)downloadTask
didWriteData:(int64_t)bytesWritten
totalBytesWritten:(int64_t)totalBytesWritten
totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite
Параметры
session
Сеанс, содержащий задачу загрузки.
downloadTask
Задача загрузки.
bytesWritten
Число байтов, переданных с прошлого раза этот метод делегата, вызвали.
totalBytesWritten
Общее количество байтов, переданных до сих пор.
totalBytesExpectedToWrite
Ожидаемая длина файла, в соответствии с
Content-Length
заголовок. Если этот заголовок не был предоставлен, значениеNSURLSessionTransferSizeUnknown
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.
-
URLSession (_: downloadTask:didFinishDownloadingToURL:) - URLSession:downloadTask:didFinishDownloadingToURL:
ТребуемыйГоворит делегату, что задача загрузки закончила загружать. (требуемый)
Объявление
Swift
func URLSession(_
session
: NSURLSession, downloadTaskdownloadTask
: NSURLSessionDownloadTask, didFinishDownloadingToURLlocation
: NSURL)Objective C
- (void)URLSession:(NSURLSession *)
session
downloadTask:(NSURLSessionDownloadTask *)downloadTask
didFinishDownloadingToURL:(NSURL *)location
Параметры
session
Сеанс, содержащий закончившуюся задачу загрузки.
downloadTask
Закончившаяся задача загрузки.
location
Файл URL для временного файла. Поскольку файл является временным, необходимо или открыть файл для чтения или переместить его в постоянное расположение в каталоге контейнера песочницы приложения прежде, чем возвратиться из этого метода делегата.
Если Вы принимаете решение открыть файл для чтения, необходимо сделать фактическое чтение в другом потоке, чтобы избежать блокировать очередь делегата.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.9 и позже.