Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы основы ссылка класса NSURLConnection

Опции
Развертывание Target:

На этой странице
Язык:

NSURLConnection

NSURLConnection объект позволяет Вам загрузить содержание URL путем обеспечения объекта URL-запроса. Интерфейс для NSURLConnection редко, обеспечивая только средства управления, чтобы запустить и отменить асинхронные загрузки URL-запроса. Вы выполняете большую часть своей конфигурации на самом объекте URL-запроса.

NSURLConnection класс обеспечивает методы класса удобства загрузить URL-запросы и асинхронно использование блока обратного вызова и синхронно.

Для большего управления можно создать объект соединения URL с объектом делегата, соответствующим NSURLConnectionDelegate и NSURLConnectionDataDelegate протоколы. Соединение вызывает методы на том делегате для обеспечения Вас прогрессом и состоянием, поскольку URL-запрос загружается асинхронно. Соединение также вызывает методы делегата позволить Вам переопределить поведение соединения по умолчанию (например, указывая, как определенное перенаправление должно быть обработано). Эти методы делегата вызывают на потоке, инициировавшем асинхронную работу загрузки.

Для получения дополнительной информации об ошибках, посмотрите NSURLError.h заголовок, Ссылка Констант Основы, и URL Loading System Error Codes в руководстве по программированию обработки ошибок.

Протоколы NSURLConnection

NSURLConnection класс работает в тандеме с тремя формальными протоколами: NSURLConnectionDelegate, NSURLConnectionDataDelegate, и NSURLConnectionDownloadDelegate. Для использования этих протоколов Вы пишете класс, соответствующий им, и реализуйте любые методы, которые являются надлежащими, затем обеспечивают экземпляр того класса как делегат, когда Вы создаете объект соединения.

NSURLConnectionDelegate протокол прежде всего используется для учетной обработки, но также и обрабатывает завершение соединения. Поскольку это обрабатывает сбой соединения во время передачи данных, все делегаты соединения должны обычно реализовывать этот протокол.

Кроме того, если Вы не используете Ньюсстэнда Кита, Ваш делегат должен также соответствовать NSURLConnectionDataDelegate протокол, потому что этот протокол обеспечивает методы что NSURLConnection если ответ сервера требует второй попытки подключения — например, если, класс вызывает с информацией о прогрессе во время загрузки с фрагментами данных ответа во время загрузки, и обеспечить поток организации новой закачки NSURLConnection должен повторить запрос с различными учетными данными.

Наконец, если Вы используете Ньюсстэнда Кита, Ваш делегат может соответствовать NSURLConnectionDownloadDelegate протокол. Этот протокол предоставляет поддержку для продолжения прерванных загрузок файла и получения уведомления каждый раз, когда заканчивается загрузка. Этот протокол исключительно для использования с NSURLConnection объекты создали использование Ньюсстэнда Кита downloadWithDelegate: метод.

Наследование


Соответствует


Оператор импорта


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в Mac OS X v10.2 с установленным Safari 1.0.
Доступный в Mac OS X v10.2.7 и позже.
  • Возвраты, может ли запрос быть обработан на основе оценки перед рейсом.

    Объявление

    Swift

    class func canHandleRequest(_ request: NSURLRequest) -> Bool

    Objective C

    + (BOOL)canHandleRequest:(NSURLRequest *)request

    Параметры

    request

    Запрос для оценки. Глубокие копии соединения запрос на создании.

    Возвращаемое значение

    YEStrue если работа перед рейсом решает что соединение с request может быть создан и связанный I/O может быть запущен, NOfalse иначе.

    Обсуждение

    Результат этого метода допустим настолько же долго как нет NSURLProtocol классы регистрируются или не зарегистрированы, и request остается неизменным. Приложения должны быть подготовлены обработать отказы, даже если они выполнили запрос preflighting путем вызова этого метода.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.2 и позже.

  • originalRequest originalRequest Свойство

    Глубокая копия запроса первоначального соединения. (только для чтения)

    Объявление

    Swift

    @NSCopying var originalRequest: NSURLRequest { get }

    Objective C

    @property(readonly, copy) NSURLRequest *originalRequest

    Обсуждение

    Поскольку соединение выполняет загрузку, запрос может измениться в результате канонизации протокола или вследствие следующих перенаправлений. currentRequest может использоваться для получения этого значения.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.8 и позже.

    См. также

    currentRequest

  • currentRequest currentRequest Свойство

    Текущий запрос на установление соединения. (только для чтения)

    Объявление

    Swift

    @NSCopying var currentRequest: NSURLRequest { get }

    Objective C

    @property(readonly, copy) NSURLRequest *currentRequest

    Обсуждение

    Поскольку соединение выполняет загрузку, запрос может измениться в результате канонизации протокола или вследствие следующих перенаправлений. Это свойство обеспечивает текущую стоимость запроса.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.8 и позже.

    См. также

    originalRequest

  • Выполняет синхронную загрузку указанного URL-запроса.

    Объявление

    Swift

    class func sendSynchronousRequest(_ request: NSURLRequest, returningResponse response: AutoreleasingUnsafeMutablePointer<NSURLResponse?>, error error: NSErrorPointer) -> NSData?

    Objective C

    + (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error

    Параметры

    request

    URL-запрос для загрузки. request объект глубоко скопирован как часть процесса инициализации. Изменения, внесенные в request после этого метода возвраты не влияют на запрос, использующийся для процесса загрузки.

    response

    Параметр для ответа URL, возвращенного сервером.

    error

    Если ошибка происходит при обработке запроса, параметр использовал. Может быть NULL.

    Возвращаемое значение

    Загруженные данные для URL-запроса. Возвраты nil если загрузка перестала работать, если соединение не могло бы быть создано или.

    Обсуждение

    Синхронная загрузка создается поверх асинхронного кода загрузки, сделанного доступный классом. В то время как асинхронная загрузочная система выполняет нагрузку URL на поток, порожденный в частности для этого запроса загрузки, вызывающий поток блокируется. Никакая специальная поточная обработка или выполненное петлевое соединение не необходимы в вызывающем потоке для выполнения синхронной загрузки.

    Если аутентификация требуется для загрузки запроса, требуемые учетные данные должны быть указаны как часть URL. Если аутентификация перестанет работать, или учетные данные отсутствуют, то соединение попытается продолжаться без учетных данных.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.2 и позже.

  • Создает и возвращает инициализированное соединение URL и начинает загружать данные для URL-запроса.

    Объявление

    Objective C

    + (NSURLConnection *)connectionWithRequest:(NSURLRequest *)request delegate:(id)delegate

    Параметры

    request

    URL-запрос для загрузки. request объект глубоко скопирован как часть процесса инициализации. Изменения, внесенные в request после этого метода возвраты не влияют на запрос, использующийся для процесса загрузки.

    delegate

    Объект делегата для соединения. Соединение вызывает методы на этом делегате, в то время как развивается загрузка. Методы делегата вызывают на том же потоке который названные этим методом. Для соединения для работы правильно цикл выполнения вызывающего потока должен работать в выполненном режиме цикла по умолчанию.

    Возвращаемое значение

    Соединение URL для URL-запроса. Возвраты nil если не может быть создано соединение.

    Специальные замечания

    Во время загрузки соединение поддерживает сильную ссылку к delegate. Когда соединение заканчивает загружаться, сбои, или отменяется, это выпускает ту сильную ссылку.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.2 и позже.

  • Возвращает инициализированное соединение URL и начинает загружать данные для URL-запроса.

    Объявление

    Swift

    init?(request request: NSURLRequest, delegate delegate: AnyObject?)

    Objective C

    - (instancetype)initWithRequest:(NSURLRequest *)request delegate:(id)delegate

    Параметры

    request

    URL-запрос для загрузки. request объект глубоко скопирован как часть процесса инициализации. Изменения, внесенные в request после этого метода возвраты не влияют на запрос, использующийся для процесса загрузки.

    delegate

    Объект делегата для соединения. Соединение вызывает методы на этом делегате, в то время как развивается загрузка. Методы делегата вызывают на том же потоке который названные этим методом. По умолчанию, для соединения для работы правильно цикл выполнения вызывающего потока должен работать в выполненном режиме цикла по умолчанию. Посмотрите scheduleInRunLoop:forMode: изменить цикл выполнения и режим.

    Возвращаемое значение

    Соединение URL для URL-запроса. Возвраты nil если не может быть инициализировано соединение.

    Обсуждение

    Это эквивалентно вызову initWithRequest:delegate:startImmediately: и передача YEStrue для startImmediately.

    Специальные замечания

    Во время загрузки соединение поддерживает сильную ссылку к delegate. Когда соединение заканчивает загружаться, сбои, или отменяется, это выпускает ту сильную ссылку.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.2 и позже.

  • Возвращает инициализированное соединение URL и начинает загружать данные для URL-запроса, если указано.

    Объявление

    Swift

    init?(request request: NSURLRequest, delegate delegate: AnyObject?, startImmediately startImmediately: Bool)

    Objective C

    - (instancetype)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately

    Параметры

    request

    URL-запрос для загрузки. request объект глубоко скопирован как часть процесса инициализации. Изменения, внесенные в request после этого метода возвраты не влияют на запрос, использующийся для процесса загрузки.

    delegate

    Объект делегата для соединения. Соединение вызывает методы на этом делегате, в то время как развивается загрузка.

    startImmediately

    YEStrue если соединение должно начать загружать данные сразу, иначе NOfalse. Если Вы передаете NOfalse, соединение не планируется с циклом выполнения. Можно тогда запланировать соединение в цикле выполнения и режиме по Вашему выбору путем вызова scheduleInRunLoop:forMode:.

    Возвращаемое значение

    Соединение URL для URL-запроса. Возвраты nil если не может быть инициализировано соединение.

    Специальные замечания

    Во время загрузки соединение поддерживает сильную ссылку к delegate. Когда соединение заканчивает загружаться, сбои, или отменяется, это выпускает ту сильную ссылку.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.5 и позже.

  • Когда запрос завершается или перестал работать, загружает данные для URL-запроса и выполняет блок обработчика на очереди работы.

    Объявление

    Swift

    class func sendAsynchronousRequest(_ request: NSURLRequest, queue queue: NSOperationQueue!, completionHandler handler: (NSURLResponse!, NSData!, NSError!) -> Void)

    Objective C

    + (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse *response, NSData *data, NSError *connectionError))handler

    Параметры

    request

    URL-запрос для загрузки. request объект глубоко скопирован как часть процесса инициализации. Изменения, внесенные в request после этого метода возвраты не влияют на запрос, использующийся для процесса загрузки.

    queue

    Очередь работы, которой диспетчеризируется блок обработчика, когда запрос завершается или отказавший.

    handler

    Блок обработчика для выполнения.

    Обсуждение

    Если запрос завершается успешно, data параметр блока обработчика содержит данные ресурсов, и error параметр nil. Если запрос перестал работать, data параметр nil и параметр ошибок содержит информацию об отказе.

    Если аутентификация требуется для загрузки запроса, требуемые учетные данные должны быть указаны как часть URL. Если аутентификация перестанет работать, или учетные данные отсутствуют, то соединение попытается продолжаться без учетных данных.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Заставляет соединение начинать загружать данные, если это уже не имеет.

    Объявление

    Swift

    func start()

    Objective C

    - (void)start

    Обсуждение

    Вызов этого метода необходим, только если Вы создаете соединение с initWithRequest:delegate:startImmediately: метод и обеспечивает NOfalse для startImmediately параметр. Если Вы не запланируете соединение в цикле выполнения или очереди работы прежде, чем вызвать этот метод, то соединение планируется в текущем цикле выполнения в режиме по умолчанию.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.5 и позже.

  • Отменяет асинхронную загрузку запроса.

    Объявление

    Swift

    func cancel()

    Objective C

    - (void)cancel

    Обсуждение

    После того, как этот метод вызывают, соединение не выполняет дальнейших вызовов метода делегата. Если Вы хотите повторно делать попытку соединения, необходимо создать новый объект соединения.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.2 и позже.

  • Определяет цикл выполнения и режим что использование соединения для вызова методов на его делегате.

    Объявление

    Swift

    func scheduleInRunLoop(_ aRunLoop: NSRunLoop, forMode mode: String)

    Objective C

    - (void)scheduleInRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode

    Параметры

    aRunLoop

    NSRunLoop экземпляр для использования при вызове методов делегата.

    mode

    Режим, в котором можно вызвать методы делегата.

    Обсуждение

    По умолчанию соединение планируется на текущий поток в режиме по умолчанию, когда это будет создано. Если Вы создаете соединение с initWithRequest:delegate:startImmediately: метод и обеспечивает NOfalse для startImmediately параметр, можно запланировать соединение на различный цикл выполнения или режим прежде, чем запустить его с start метод. Можно запланировать соединение на многократные циклы выполнения и режимы, или на тот же цикл выполнения в многократных режимах.

    Вы не можете перепланировать соединение после того, как оно запустилось.

    Это - ошибка запланировать вызовы метода делегата и с этим методом и с setDelegateQueue: метод.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.5 и позже.

  • Определяет очередь работы, использующуюся для вызова методов на делегате соединения.

    Объявление

    Swift

    func setDelegateQueue(_ queue: NSOperationQueue!)

    Objective C

    - (void)setDelegateQueue:(NSOperationQueue *)queue

    Параметры

    queue

    Очередь работы для использования при вызове методов делегата.

    Обсуждение

    По умолчанию соединение планируется на текущий поток в режиме по умолчанию, когда это будет создано. Если Вы создаете соединение с initWithRequest:delegate:startImmediately: метод и обеспечивает NOfalse для startImmediately параметр, можно вместо этого запланировать соединение на очередь работы прежде, чем запустить его с start метод.

    Вы не можете перепланировать соединение после того, как оно запустилось.

    Это - ошибка запланировать вызовы метода делегата и с этим методом и с scheduleInRunLoop:forMode: метод.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Заставляет соединение прекращать вызывать методы делегата в указанном цикле выполнения и режиме.

    Объявление

    Swift

    func unscheduleFromRunLoop(_ aRunLoop: NSRunLoop, forMode mode: String)

    Objective C

    - (void)unscheduleFromRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode

    Параметры

    aRunLoop

    Экземпляр цикла выполнения, чтобы не запланировать.

    mode

    Режим, чтобы не запланировать.

    Обсуждение

    По умолчанию соединение планируется на текущий поток в режиме по умолчанию, когда это будет создано. Если Вы создаете соединение с initWithRequest:delegate:startImmediately: метод и обеспечивает NOfalse для startImmediately параметр, можно вместо этого запланировать соединение на различный цикл выполнения или режим прежде, чем запустить его с start метод. Можно запланировать соединение на многократные циклы выполнения и режимы, или на тот же цикл выполнения в многократных режимах. Используйте этот метод, чтобы не запланировать соединение от нежелательного цикла выполнения и режима прежде, чем запустить соединение.

    Вы не можете перепланировать соединение после того, как оно запустилось. Не необходимо не запланировать соединение после того, как это закончилось.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.5 и позже.