NSURLDownload
NSURLDownload
класс загружает запрос асинхронно и сохраняет данные к файлу. Интерфейс для NSURLDownload
обеспечивает методы, чтобы инициализировать загрузку, установить целевой путь и отмену, загружающую запрос.
Объект делегата, присвоенный каждому экземпляру этого класса, должен реализовать методы, определенные NSURLDownloadDelegate
протокол. Эти методы предоставляют делегату текущий статус происходящих асинхронных загрузок и позволяют делегату настраивать процесс загрузки URL. Эти методы делегата вызывают на потоке, запустившем асинхронную работу загрузки для связанного NSURLDownload
объект.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Возвращает инициализированную загрузку URL для URL-запроса и начинает загружать данные для запроса.
Объявление
Swift
init(request
request
: NSURLRequest, delegatedelegate
: NSURLDownloadDelegate?)Objective C
- (instancetype)initWithRequest:(NSURLRequest *)
request
delegate:(id<NSURLDownloadDelegate>)delegate
Параметры
request
URL-запрос для загрузки.
request
объект глубоко скопирован как часть процесса инициализации. Изменения, внесенные вrequest
после этого метода возвраты не влияют на запрос, использующийся для процесса загрузки.delegate
Делегат к загрузке. Этот объект получит сообщения делегата, в то время как развивается загрузка. Сообщения делегата будут отправлены на потоке, вызывающем этот метод. Для загрузки для работы правильно цикл выполнения вызывающего потока должен работать в выполненном режиме цикла по умолчанию.
NSURLDownload
класс поддерживает сильную ссылку к этому объекту делегата.Возвращаемое значение
Инициализированный NSURLDownload возражает для
request
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Устанавливает целевой путь загруженного файла.
Объявление
Swift
func setDestination(_
path
: String, allowOverwriteallowOverwrite
: Bool)Objective C
- (void)setDestination:(NSString *)
path
allowOverwrite:(BOOL)allowOverwrite
Параметры
path
Путь для загруженного файла.
allowOverwrite
YES
true
если существующий файл вpath
может быть заменен,NO
false
иначе.Обсуждение
Если
allowOverwrite
NO
false
и файл уже существует вpath
, уникальное имя файла будет создаваться для загруженного файла путем добавления числа к имени файла. Делегат может реализоватьdownload:didCreateDestination:
когда файл записан в диск, метод делегата определить имя файла использовал.Специальные замечания
NSURLDownload
экземпляр игнорирует множественные вызовы этого метода.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Возвраты, может ли объект загрузки URL возобновить загрузку, декодировавшуюся с указанным типом MIME.
Объявление
Swift
class func canResumeDownloadDecodedWithEncodingMIMEType(_
MIMEType
: String) -> BoolObjective C
+ (BOOL)canResumeDownloadDecodedWithEncodingMIMEType:(NSString *)
MIMEType
Параметры
MIMEType
Тип MIME вызывающая сторона хочет знать о.
Возвращаемое значение
YES
true
если объект загрузки URL может возобновить загрузку, декодировавшуюся с указанным типом MIME,NO
false
иначе.Обсуждение
Тип MIME файла, в сочетании со значением, возвращенным
download:shouldDecodeSourceDataOfMIMEType:
метод делегата, определяет лиNSURLDownload
класс должен декодировать или распаковать входящие данные, поскольку это получено.Некоторые методы сжатия, такой как
DEFLATE
алгоритм (gzip
) используйте словари символа, варьирующиеся во время процесса сжатия, делая его непрактичным для распаковки только части данных, запускающихся в середине. Поэтому этот метод возвратыNO
false
если не отвечают обоим из следующих условий:Тип MIME имеет тип что
NSURLDownload
класс знает, как распаковать или декодировать.Декодирование может быть безопасно возобновлено.
На практике, этот метод возвраты
YES
true
для Макбинэри и BinHex, иначеNO
false
.Если Ваше приложение должно быть в состоянии возобновить загрузки файла в
gzip
формат, Вашdownload:shouldDecodeSourceDataOfMIMEType:
метод должен возвратитьсяNO
false
, и необходимо декодировать получающийся файл сами после того, как Вы закончите загружать его полностью.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает инициализированный объект NSURLDownload, который продолжит загружать указанные данные на указанный файл и начинает загрузку.
Объявление
Swift
init(resumeData
resumeData
: NSData, delegatedelegate
: NSURLDownloadDelegate?, pathpath
: String)Параметры
resumeData
Указывает данные, чтобы продолжить загружать.
delegate
Делегат к загрузке. Этот объект получит сообщения делегата, в то время как развивается загрузка. Сообщения делегата будут отправлены на потоке, вызывающем этот метод. Для загрузки для работы правильно цикл выполнения вызывающего потока должен работать в выполненном режиме цикла по умолчанию.
NSURLDownload
класс поддерживает сильную ссылку к этому объекту делегата.path
Расположение для загруженных данных.
Возвращаемое значение
Инициализированный объект NSURLDownload.
Обсуждение
Если Вы хотите поддерживать приостановку и возобновление загрузок, Ваше приложение должно:
Вызвать
setDeletesFileUponFailure:
, передачаNO
false
. Если Вы хотите поддерживать возобновляющиеся загрузки в случае потерянного соединения, необходимо сразу сделать это после инициализации объекта загрузки.Если Ваше приложение должно приостановить передачу по какой-либо причине, вызвать
cancel
. Поскольку ранее вызывают Ваше приложениеsetDeletesFileUponFailure:
сNO
false
, происходящая загрузка не удалена.После того, как Ваше приложение приостанавливает передачу или после того, как ошибка передачи происходит, вызвать
resumeData
получить данные должно было возобновить передачу позже.Если передача, отказавшая из-за ошибки связи, используйте
SCNetworkReachability
API для определения подходящего времени, чтобы попробовать еще раз. Для получения дополнительной информации считайте Ссылку SCNetworkReachability.Если Ваше приложение явно приостановило загрузку, ожидайте, пока не является надлежащим продолжать передачу (такой как тогда, когда пользователь щелкает или касается кнопки возобновления).
Вызвать
initWithResumeData:delegate:path:
и передайте блоб данных резюме, который это ранее получило на шаге 3.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
См. также
-
Возвращает данные резюме для загрузки, которая еще не завершена.
Объявление
Swift
@NSCopying var resumeData: NSData? { get }
Objective C
@property(readonly, copy) NSData *resumeData
Возвращаемое значение
Данные резюме для загрузки, которая еще не завершена. Эти данные представляют необходимую информацию состояния что
NSURLDownload
возразите должен возобновить загрузку. Данные резюме могут позже использоваться при инициализации загрузки сinitWithResumeData:delegate:path:
. Возвратыnil
если загрузка не в состоянии быть возобновленной.Обсуждение
Данные резюме возвращаются только если и протокол и возобновление поддержки сервера. Для получения дополнительной информации о том, как возобновить соединение, см. документацию для
initWithResumeData:delegate:path:
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
-
Указывает, удаляет ли получатель частично загруженный файл, когда загрузка останавливается преждевременно.
Объявление
Swift
var deletesFileUponFailure: Bool
Objective C
@property BOOL deletesFileUponFailure
Параметры
deletesFileUponFailure
YES
true
когда загрузка останавливается преждевременно, если должны быть удалены частично загруженные файлыNO
false
иначе. Значение по умолчаниюYES
true
.Обсуждение
Чтобы позволить загрузке быть возобновленной в случае, если загрузка заканчивается преждевременно, необходимо вызвать этот метод как можно скорее после запуска загрузки.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
См. также
-
Отменяет загрузку получателя и удаляет загруженный файл.
Объявление
Swift
func cancel()
Objective C
- (void)cancel
Обсуждение
Этот метод удаляет частично загруженный файл, если Вы ранее не вызвали
setDeletesFileUponFailure:
, передачаNO
false
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Возвращает запрос, инициировавший загрузку получателя.
Объявление
Swift
@NSCopying var request: NSURLRequest { get }
Objective C
@property(readonly, copy) NSURLRequest *request
Возвращаемое значение
URL-запрос, инициировавший загрузку получателя.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Возвраты, удаляет ли получатель частично загруженные файлы, когда загрузка останавливается преждевременно.
Объявление
Swift
var deletesFileUponFailure: Bool
Objective C
@property BOOL deletesFileUponFailure
Возвращаемое значение
YES
true
когда загрузка останавливается преждевременно, если должны быть удалены частично загруженные файлыNO
false
иначе. Значение по умолчаниюYES
true
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.4 и позже.
См. также