NSURLConnectionDataDelegate
NSURLConnectionDataDelegate
протокол описывает методы, которые должны быть реализованы делегатом к экземпляру NSURLConnection
класс. Много методов в этом протоколе существовали как часть неофициального протокола в предыдущих версиях OS X и iOS.
В дополнение к методам, описанным в этом протоколе, NSURLConnection
делегат должен также реализовать методы, описанные в NSURLConnectionDelegate
протокол.
Наследование
Не применимый
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.8 и позже.
-
Отправленный, когда соединение получило достаточные данные для построения ответа URL для его запроса.
Объявление
Swift
optional func connection(_
connection
: NSURLConnection, didReceiveResponseresponse
: NSURLResponse)Objective C
- (void)connection:(NSURLConnection *)
connection
didReceiveResponse:(NSURLResponse *)response
Параметры
connection
Соединение, отправляющее сообщение.
response
Ответ URL для запроса соединения. Этот объект является неизменным и не будет изменен загрузочной системой URL, как только это представлено делегату.
Обсуждение
В редких случаях, например в случае HTTP загружаются, где тип контента данных загрузки
multipart/x-mixed-replace
, делегат получит больше чем одинconnection:didReceiveResponse:
сообщение. Когда это происходит, отбрасывание (или процесс) все данные, ранее поставленныеconnection:didReceiveData:
, и подготовьте обрабатывать следующую часть (который мог потенциально иметь различный тип MIME).Единственный случай, куда это сообщение не отправляется делегату, - когда реализация протокола встречается с ошибкой, прежде чем мог быть создан ответ.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.8 и позже.
-
Отправленный, поскольку соединение загружает данные инкрементно.
Объявление
Swift
optional func connection(_
connection
: NSURLConnection, didReceiveDatadata
: NSData)Objective C
- (void)connection:(NSURLConnection *)
connection
didReceiveData:(NSData *)data
Параметры
connection
Соединение, отправляющее сообщение.
data
Недавно доступные данные. Делегат должен связать содержание каждого
data
объект, поставленный для роста полных данных для загрузки URL.Обсуждение
Этот метод обеспечивает единственный способ для асинхронного делегата получить загруженные данные. Это - ответственность делегата сохранить или скопировать эти данные, когда это поставлено.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.8 и позже.
-
соединение (_: didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:) - connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:
Отправленный, поскольку организация (данные сообщения) запроса передается (такой как в http запросе POST).
Объявление
Swift
optional func connection(_
connection
: NSURLConnection, didSendBodyDatabytesWritten
: Int, totalBytesWrittentotalBytesWritten
: Int, totalBytesExpectedToWritetotalBytesExpectedToWrite
: Int)Objective C
- (void)connection:(NSURLConnection *)
connection
didSendBodyData:(NSInteger)bytesWritten
totalBytesWritten:(NSInteger)totalBytesWritten
totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite
Параметры
connection
Соединение, отправляющее сообщение.
bytesWritten
Число байтов, записанных в последней записи.
totalBytesWritten
Общее количество байтов, записанных для этого соединения.
totalBytesExpectedToWrite
Число байтов соединение ожидает писать.
Обсуждение
Этот метод обеспечивает оценку прогресса загрузки URL.
Значение
totalBytesExpectedToWrite
если запрос должен ретранслироваться вследствие потерянного соединения или запроса аутентификации от сервера, может измениться во время загрузки.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.8 и позже.
-
Отправленный, когда соединение закончило загружаться успешно.
Объявление
Swift
optional func connectionDidFinishLoading(_
connection
: NSURLConnection)Objective C
- (void)connectionDidFinishLoading:(NSURLConnection *)
connection
Параметры
connection
Соединение, отправляющее сообщение.
Обсуждение
Делегат не получит дальнейших сообщений для
connection
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.8 и позже.
-
Отправленный, когда соединение решает, что должно изменить URLs, чтобы продолжать загружать запрос.
Объявление
Swift
optional func connection(_
connection
: NSURLConnection, willSendRequestrequest
: NSURLRequest, redirectResponseredirectResponse
: NSURLResponse?) -> NSURLRequest?Objective C
- (NSURLRequest *)connection:(NSURLConnection *)
connection
willSendRequest:(NSURLRequest *)request
redirectResponse:(NSURLResponse *)redirectResponse
Параметры
connection
Соединение, отправляющее сообщение.
request
Предложенный перенаправленный запрос. Делегат должен проверить перенаправленный запрос, чтобы проверить, что он удовлетворяет свои потребности, и создайте копию с новыми атрибутами для возврата к соединению при необходимости.
redirectResponse
Ответ URL, вызвавший перенаправление. Может быть
nil
в случаях, где этот метод вызывают из-за канонизации URL.Возвращаемое значение
Фактический URL-запрос для использования в свете ответа перенаправления. Делегат может возвратиться
request
неизмененный для разрешения перенаправления возвратите новый запрос или возвратnil
отклонить перенаправление и продолжать обрабатывать соединение.Обсуждение
Если
redirectResponse
nil
, URL был каноническим (переписанный в его стандартную форму)NSURLProtocol
объект, обрабатывающий запрос. Обновите свой пользовательский интерфейс, чтобы показать стандартизированную форму URL, затем возвратить исходный неизмененный запрос.Иначе, для отмены перенаправления вызовите
connection
объектcancel
метод, затем возвратите предоставленный объект запроса.Для получения организации самого ответа перенаправления возвратиться
nil
отменять перенаправление. Соединение продолжает обрабатывать, в конечном счете отправляя Вашему делегату aconnectionDidFinishLoading
илиconnection:didFailLoadingWithError:
сообщение, как надлежащий.Для перенаправления запроса к различному URL создайте новый объект запроса и возвратите его.
Делегат должен быть подготовлен получить это сообщение многократно.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.8 и позже.
-
Вызванный, когда
NSURLConnection
потребности ретранслировать запрос, имеющий поток организации для обеспечения нового, нераскрытого потока.Объявление
Swift
optional func connection(_
connection
: NSURLConnection, needNewBodyStreamrequest
: NSURLRequest) -> NSInputStream?Objective C
- (NSInputStream *)connection:(NSURLConnection *)
connection
needNewBodyStream:(NSURLRequest *)request
Параметры
connection
NSURLConnection, запрашивающий новый поток организации.
Возвращаемое значение
Этот метод делегата должен возвратить новый, нераскрытый поток, обеспечивающий содержание организации для запроса.
Если возвращается этот метод делегата
NULL
, сбои соединения.Обсуждение
На OS X, если этот метод не реализован, потоковые данные организации являются spooled к диску в случае, если требуется повторная передача. Этот спулинг может не быть желательным для больших наборов данных.
Путем реализации этого метода делегата клиент выбирает из автоматического спулинга и должен обеспечить новый, нераскрытый поток для каждой повторной передачи.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.8 и позже.
-
Отправленный, прежде чем соединение хранит кэшируемый ответ в кэше, чтобы дать делегату возможность изменить его.
Объявление
Swift
optional func connection(_
connection
: NSURLConnection, willCacheResponsecachedResponse
: NSCachedURLResponse) -> NSCachedURLResponse?Objective C
- (NSCachedURLResponse *)connection:(NSURLConnection *)
connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
Параметры
connection
Соединение, отправляющее сообщение.
cachedResponse
Предложенный кэшируемый ответ для хранения в кэше.
Возвращаемое значение
Фактический кэшируемый ответ для хранения в кэше. Делегат может возвратиться
cachedResponse
неизмененный, возвратите измененный кэшируемый ответ или возвратnil
если никакой кэшируемый ответ не должен быть сохранен для соединения.Обсуждение
Этот метод вызывают только если
NSURLProtocol
обрабатывание запроса решает кэшировать ответ. Как правило ответы кэшируются только, когда все следующее является истиной:Запросом является для HTTP или HTTPS URL (или Ваш собственный сетевой протокол, поддерживающий кэширование).
Запрос был успешен (с кодом состояния в
200–299
диапазон).Предоставленный ответ прибыл из сервера, а не из кэша.
NSURLRequest
политика кэша объекта позволяет кэшироваться.Связанные с кэшем заголовки в ответе сервера (если есть) позволяют кэшироваться.
Размер ответа является достаточно маленьким к довольно подходящему в кэше. (Например, при обеспечении дискового кэша ответ должен быть не больше, чем приблизительно 5% размера дискового кэша.)
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.8 и позже.