NSURLDownloadDelegate
NSURLDownloadDelegate протокол определяет методы, позволяющие объекту получить информационные обратные вызовы об асинхронной загрузке URL-запроса загрузки. Другие методы делегата предоставляют услуги, позволяющие делегату настраивать процесс выполнения асинхронной загрузки URL.
Обратите внимание на то, что эти методы делегата вызовут на потоке, запустившем асинхронную работу загрузки для связанного NSURLDownload объект.
A
downloadDidBegin:сообщение будет отправлено делегату непосредственно после запуска загрузки.Нуль или больше
download:willSendRequest:redirectResponse:сообщения будут отправлены делегату, прежде чем дальнейшие сообщения будут отправлены, если определено, что загрузка должна перенаправить к новому расположению. Делегат может позволить перенаправление, изменить место назначения или отклонить перенаправление.Нуль или больше
download:didReceiveAuthenticationChallenge:сообщения будут отправлены делегату, если будет необходимо аутентифицировать для загрузки запроса, и NSURLDownload уже не имеет аутентифицируемых учетных данных.Нуль или больше
download:didCancelAuthenticationChallenge:если NSURLDownload отменит запрос аутентификации вследствие обнаружения с ошибкой реализации протокола, сообщения будут отправлены делегату.Нуль или больше
download:didReceiveResponse:сообщения будут отправлены делегату прежде, чем получить adownload:didReceiveDataOfLength:сообщение. Единственный случай, гдеdownload:didReceiveResponse:не отправляется делегату, когда реализация протокола встречается с ошибкой, прежде чем мог быть создан ответ.Нуль или больше
download:didReceiveDataOfLength:сообщения будут отправлены преждеdownloadDidFinish:илиdownload:didFailWithError:отправляется делегату.Нуль или один
download:decideDestinationWithSuggestedFilename:когда достаточная информация будет получена для определения предложенного имени файла для загруженного файла, будет отправлен делегату. Делегат не получит это сообщение еслиsetDestination:allowOverwrite:был уже отправлен в экземпляр NSURLDownload.A
download:didCreateDestination:когда экземпляр NSURLDownload создаст файл на диске, сообщение будет отправлено делегату.Если NSURLDownload решит, что загруженный файл находится в формате, который это в состоянии декодировать (Макбинэри, Binhex или gzip), то делегат получит a
download:shouldDecodeSourceDataOfMIMEType:. Делегат должен возвратитьсяYEStrueдекодировать данные,NOfalseиначе.Если экземпляр NSURLDownload не получает a
cancelсообщение, делегат получит один и только одинdownloadDidFinish:илиdownload:didFailWithError:сообщение, но никогда оба. Кроме того, один раз любое из этих сообщений отправляются, делегат не получит дальнейших сообщений для данного NSURLDownload.
Наследование
Не применимый
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.7 и позже.
-
загрузка (_: canAuthenticateAgainstProtectionSpace:) - download:canAuthenticateAgainstProtectionSpace:ТребуемыйОтправленный, чтобы определить, в состоянии ли делегат реагировать на форму пространства защиты аутентификации. (требуемый)
Объявление
Swift
optional func download(_download: NSURLDownload, canAuthenticateAgainstProtectionSpaceprotectionSpace: NSURLProtectionSpace) -> BoolObjective C
- (BOOL)download:(NSURLDownload *)downloadcanAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpaceПараметры
downloadЗагрузка, отправляющая сообщение.
protectionSpaceПространство защиты, генерирующее запрос аутентификации.
Обсуждение
Этот метод вызывают прежде
download:didReceiveAuthenticationChallenge:, разрешение делегату проверить пространство защиты прежде, чем попытаться аутентифицировать против него. Путем возвратаYEStrue, делегат указывает, что это может обработать форму аутентификации, к которой это делает в последующем вызовеdownload:didReceiveAuthenticationChallenge:. Не реализация этого метода совпадает с возвратомNOfalse, когда используется обработка аутентификации по умолчанию.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
загрузка (_: didCancelAuthenticationChallenge:) - download:didCancelAuthenticationChallenge:ТребуемыйОтправленный, если запрос аутентификации отменяется вследствие реализации протокола, встречающейся с ошибкой. (требуемый)
Объявление
Swift
optional func download(_download: NSURLDownload, didCancelAuthenticationChallengechallenge: NSURLAuthenticationChallenge)Objective C
- (void)download:(NSURLDownload *)downloaddidCancelAuthenticationChallenge:(NSURLAuthenticationChallenge *)challengeПараметры
downloadURL загружает объект, отправляющий сообщение.
challengeЗапрос аутентификации, вызвавший объект загрузки отменить загрузку.
Обсуждение
Если делегат получит это сообщение, то загрузка перестанет работать, и делегат получит a
download:didFailWithError:сообщение.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
загрузка (_: didReceiveAuthenticationChallenge:) - download:didReceiveAuthenticationChallenge:ТребуемыйОтправленный, когда загрузка URL должна аутентифицировать проблему для загрузки запроса. (требуемый)
Объявление
Swift
optional func download(_download: NSURLDownload, didReceiveAuthenticationChallengechallenge: NSURLAuthenticationChallenge)Objective C
- (void)download:(NSURLDownload *)downloaddidReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challengeПараметры
downloadURL загружает объект, отправляющий сообщение.
challengeЗапрос аутентификации URL, который должен аутентифицироваться для загрузки запроса.
Обсуждение
Этот метод дает делегату возможность определить план действий, взятый для проблемы: обеспечьте учетные данные, продолжайте, не обеспечивая учетные данные или отмените запрос аутентификации и загрузку.
Делегат может определить число предыдущих запросов аутентификации путем отправки сообщения
previousFailureCountкchallenge.Если предыдущее число отказов 0 и значение, возвращенное
proposedCredentialnil, делегат может создать новый объект NSURLCredential, предоставив информацию, определенную для типа учетных данных, и отправить auseCredential:forAuthenticationChallenge:сообщение к[challenge sender], передача учетных данных иchallengeкак параметры. ЕслиproposedCredentialнеnil, значение является учетными данными от URL или совместно используемого учетного хранения, которое может быть предоставлено для пользователя как обратная связь.Делегат может решить отказаться от дальнейших попыток аутентификации в любое время путем отправки
[challenge sender]acontinueWithoutCredentialForAuthenticationChallenge:или acancelAuthenticationChallenge:сообщение. Определенное действие является зависящим от реализации.Если делегат реализует этот метод, то загрузка приостановит до
[challenge sender]отправляется одно из следующих сообщений:useCredential:forAuthenticationChallenge:,continueWithoutCredentialForAuthenticationChallenge:илиcancelAuthenticationChallenge:.Если делегат не реализует этот метод, реализация по умолчанию используется. Если допустимые учетные данные для запроса предоставлены как часть URL или доступны от NSURLCredentialStorage
[challenge sender]отправляется auseCredential:forAuthenticationChallenge:с учетными данными. Если проблема не имеет никаких учетных данных, или учетным данным не удается авторизовать доступ, тоcontinueWithoutCredentialForAuthenticationChallenge:отправляется в[challenge sender]вместо этого.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Отправленный, чтобы определить, должен ли загрузчик URL консультироваться с учетным хранением для аутентификации загрузки. (требуемый)
Объявление
Swift
optional func downloadShouldUseCredentialStorage(_connection: NSURLDownload) -> BoolObjective C
- (BOOL)downloadShouldUseCredentialStorage:(NSURLDownload *)connectionПараметры
connectionСоединение, отправляющее сообщение.
Обсуждение
Этот метод вызывают, прежде чем любая попытка аутентифицировать предпринята. Путем возврата
NOfalse, делегат говорит загрузке не консультироваться с учетным хранением и делает себя ответственным за обеспечение учетных данных для любых запросов аутентификации. Не реализация этого метода совпадает с returingYEStrue. Делегат свободен консультироваться с самим учетным хранением, когда оно получает adownload:didReceiveAuthenticationChallenge:сообщение.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
загрузка (_: decideDestinationWithSuggestedFilename:) - download:decideDestinationWithSuggestedFilename:ТребуемыйДелегат получает это сообщение когда
downloadопределил предложенное имя файла для загруженного файла. (требуемый)Объявление
Swift
optional func download(_download: NSURLDownload, decideDestinationWithSuggestedFilenamefilename: String)Objective C
- (void)download:(NSURLDownload *)downloaddecideDestinationWithSuggestedFilename:(NSString *)filenameПараметры
downloadURL загружает объект, отправляющий сообщение.
filenameПредложенное имя файла для загрузки.
Обсуждение
Если загрузка была закодирована от кодирования, предложенное имя файла или получено из последнего компонента контура URL и типа MIME или. Если делегат хочет изменить путь, он должен отправить
setDestination:allowOverwrite:кdownload.Специальные замечания
Делегат не получит это сообщение если
setDestination:allowOverwrite:был уже вызван для загрузки.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
downloadDidBegin (_:) - downloadDidBegin:ТребуемыйОтправленный сразу после того, как объект загрузки начинает загрузку. (требуемый)
Объявление
Swift
optional func downloadDidBegin(_download: NSURLDownload)Objective C
- (void)downloadDidBegin:(NSURLDownload *)downloadПараметры
downloadURL загружает объект, отправляющий сообщение.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Отправленный, когда создается целевой файл. (требуемый)
Объявление
Swift
optional func download(_download: NSURLDownload, didCreateDestinationpath: String)Objective C
- (void)download:(NSURLDownload *)downloaddidCreateDestination:(NSString *)pathПараметры
downloadURL загружает объект, отправляющий сообщение.
pathПуть к целевому файлу.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Отправленный, когда объект загрузки получил достаточные данные загрузки для построения объекта NSURLResponse для загрузки. (требуемый)
Объявление
Swift
optional func download(_download: NSURLDownload, didReceiveResponseresponse: NSURLResponse)Objective C
- (void)download:(NSURLDownload *)downloaddidReceiveResponse:(NSURLResponse *)responseПараметры
downloadURL загружает объект, отправляющий сообщение.
responseОбъект ответа URL, полученный как часть загрузки.
responseявляется неизменным и не будет изменен после того, как этот метод вызывают.Обсуждение
В некоторых редких случаях множественные ответы могут быть получены для единственной загрузки. В этом случае клиент должен предположить, что каждый новый ответ сбрасывает прогресс загрузки к 0 и должен проверить новый ответ на ожидаемую длину содержания.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Отправленный, поскольку объект загрузки получает данные инкрементно. (требуемый)
Объявление
Swift
optional func download(_download: NSURLDownload, didReceiveDataOfLengthlength: Int)Objective C
- (void)download:(NSURLDownload *)downloaddidReceiveDataOfLength:(NSUInteger)lengthПараметры
downloadURL загружает объект, отправляющий сообщение.
lengthОбъем данных, полученный в этом инкременте загрузки, измеренной в байтах.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
загрузка (_: shouldDecodeSourceDataOfMIMEType:) - download:shouldDecodeSourceDataOfMIMEType:ТребуемыйОтправленный, когда объект загрузки решает, что загруженный файл кодируется, чтобы запросить, должен ли автоматически декодироваться файл. (требуемый)
Объявление
Swift
optional func download(_download: NSURLDownload, shouldDecodeSourceDataOfMIMETypeencodingType: String) -> BoolObjective C
- (BOOL)download:(NSURLDownload *)downloadshouldDecodeSourceDataOfMIMEType:(NSString *)encodingTypeПараметры
downloadURL загружает объект, отправляющий сообщение.
encodingTypeТип кодирования используемого загруженным файлом. Поддерживаемыми форматами кодировки является Макбинэри (
"application/macbinary"), Binhex ("application/mac-binhex40") и gzip ("application/gzip").Возвращаемое значение
YEStrueдекодировать файл,NOfalseиначе.Специальные замечания
Если файл был закодирован многократно, делегат может получить это сообщение несколько раз. Если загруженный файл не кодируется, этот метод не вызывают.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
загрузка (_: willResumeWithResponse:fromByte:) - download:willResumeWithResponse:fromByte:ТребуемыйОтправленный, когда объект загрузки получил ответ от сервера после попытки возобновить загрузку. (требуемый)
Объявление
Swift
optional func download(_download: NSURLDownload, willResumeWithResponseresponse: NSURLResponse, fromBytestartingByte: Int64)Objective C
- (void)download:(NSURLDownload *)downloadwillResumeWithResponse:(NSURLResponse *)responsefromByte:(long long)startingByteПараметры
downloadURL загружает объект, отправляющий сообщение.
responseОтвет URL, полученный от сервера в ответ на попытку возобновить загрузку.
startingByteРасположение запуска возобновленных данных, в байтах.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
загрузка (_: willSendRequest:redirectResponse:) - download:willSendRequest:redirectResponse:ТребуемыйОтправленный, когда объект загрузки решает, что должен изменить URLs, чтобы продолжать загружать запрос. (требуемый)
Объявление
Swift
optional func download(_download: NSURLDownload, willSendRequestrequest: NSURLRequest, redirectResponseredirectResponse: NSURLResponse?) -> NSURLRequest?Objective C
- (NSURLRequest *)download:(NSURLDownload *)downloadwillSendRequest:(NSURLRequest *)requestredirectResponse:(NSURLResponse *)redirectResponseПараметры
downloadURL загружает объект, отправляющий сообщение.
requestПредложенный перенаправленный запрос. Делегат должен проверить перенаправленный запрос, чтобы проверить, что он удовлетворяет свои потребности, и создайте копию с новыми атрибутами для возврата к соединению при необходимости.
redirectResponseОтвет URL, вызвавший перенаправление. Может быть
nilв случаях, куда этот метод не отправляется в результате включения делегата в обработке перенаправления.Возвращаемое значение
Фактический URL-запрос для использования в свете ответа перенаправления. Делегат может скопировать и изменить
requestпо мере необходимости для изменения его атрибутов возвратитьсяrequestнеизмененный, или возвратnil.Обсуждение
Если делегат хочет отменить перенаправление, оно должно вызвать
downloadобъектcancelметод. Также метод делегата может возвратитьсяnilотменять перенаправление и загрузку будет продолжать обрабатывать. Это имеет специальную уместность в случае гдеredirectResponseнеnil. В этом случае любые данные, загружающиеся для загрузки, будут отправлены делегату, и делегат получит adownloadDidFinish:илиdownload:didFailWithError:сообщение, как надлежащий.Специальные замечания
Делегат может получить это сообщение в результате преобразования URL запроса к его канонической форме, или по специфичным для протокола причинам, таким как перенаправление HTTP. Реализация делегата должна быть подготовлена получить это сообщение многократно.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
Отправленный, если загрузка перестала работать или если ошибка I/O происходит, когда файл записан в диск. (требуемый)
Объявление
Swift
optional func download(_download: NSURLDownload, didFailWithErrorerror: NSError)Objective C
- (void)download:(NSURLDownload *)downloaddidFailWithError:(NSError *)errorПараметры
downloadURL загружает объект, отправляющий сообщение.
errorОшибка, вызвавшая отказ загрузки.
Обсуждение
Любой частично загруженный файл будет удален.
Специальные замечания
Как только делегат получает это сообщение, оно не получит дальнейших сообщений для
download.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
-
downloadDidFinish (_:) - downloadDidFinish:ТребуемыйОтправленный, когда объект загрузки завершил загрузку успешно и записал ее результаты в диск. (требуемый)
Объявление
Swift
optional func downloadDidFinish(_download: NSURLDownload)Objective C
- (void)downloadDidFinish:(NSURLDownload *)downloadПараметры
downloadURL загружает объект, отправляющий сообщение.
Обсуждение
Делегат не получит дальнейших сообщений для
download.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 и позже.
Доступный как часть неофициального протокола до OS X v10.7.
