NSURLConnectionDataDelegate
Наследование
Не применимый
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 5.0 и позже.
NSURLConnectionDataDelegate протокол описывает методы, которые должны быть реализованы делегатом к экземпляру NSURLConnection класс. Много методов в этом протоколе существовали как часть неофициального протокола в предыдущих версиях OS X и iOS.
В дополнение к методам, описанным в этом протоколе, NSURLConnection делегат должен также реализовать методы, описанные в NSURLConnectionDelegate протокол.
-
Отправленный, когда соединение получило достаточные данные для построения ответа URL для его запроса.
Объявление
Swift
optional func connection(_connection: NSURLConnection, didReceiveResponseresponse: NSURLResponse)Objective C
- (void)connection:(NSURLConnection *)connectiondidReceiveResponse:(NSURLResponse *)responseПараметры
connectionСоединение, отправляющее сообщение.
responseОтвет URL для запроса соединения. Этот объект является неизменным и не будет изменен загрузочной системой URL, как только это представлено делегату.
Обсуждение
В редких случаях, например в случае HTTP загружаются, где тип контента данных загрузки
multipart/x-mixed-replace, делегат получит больше чем одинconnection:didReceiveResponse:сообщение. Когда это происходит, отбрасывание (или процесс) все данные, ранее поставленныеconnection:didReceiveData:, и подготовьте обрабатывать следующую часть (который мог потенциально иметь различный тип MIME).Единственный случай, куда это сообщение не отправляется делегату, - когда реализация протокола встречается с ошибкой, прежде чем мог быть создан ответ.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
Доступный как часть неофициального протокола до iOS 5.0.
-
Отправленный, поскольку соединение загружает данные инкрементно.
Объявление
Swift
optional func connection(_connection: NSURLConnection, didReceiveDatadata: NSData)Objective C
- (void)connection:(NSURLConnection *)connectiondidReceiveData:(NSData *)dataПараметры
connectionСоединение, отправляющее сообщение.
dataНедавно доступные данные. Делегат должен связать содержание каждого
dataобъект, поставленный для роста полных данных для загрузки URL.Обсуждение
Этот метод обеспечивает единственный способ для асинхронного делегата получить загруженные данные. Это - ответственность делегата сохранить или скопировать эти данные, когда это поставлено.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
Доступный как часть неофициального протокола до iOS 5.0.
-
соединение (_: 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 *)connectiondidSendBodyData:(NSInteger)bytesWrittentotalBytesWritten:(NSInteger)totalBytesWrittentotalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWriteПараметры
connectionСоединение, отправляющее сообщение.
bytesWrittenЧисло байтов, записанных в последней записи.
totalBytesWrittenОбщее количество байтов, записанных для этого соединения.
totalBytesExpectedToWriteЧисло байтов соединение ожидает писать.
Обсуждение
Этот метод обеспечивает оценку прогресса загрузки URL.
Значение
totalBytesExpectedToWriteесли запрос должен ретранслироваться вследствие потерянного соединения или запроса аутентификации от сервера, может измениться во время загрузки.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 3.0 и позже.
Доступный как часть неофициального протокола до iOS 5.0.
-
Отправленный, когда соединение закончило загружаться успешно.
Объявление
Swift
optional func connectionDidFinishLoading(_connection: NSURLConnection)Objective C
- (void)connectionDidFinishLoading:(NSURLConnection *)connectionПараметры
connectionСоединение, отправляющее сообщение.
Обсуждение
Делегат не получит дальнейших сообщений для
connection.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
Доступный как часть неофициального протокола до iOS 5.0.
-
Отправленный, когда соединение решает, что должно изменить URLs, чтобы продолжать загружать запрос.
Объявление
Swift
optional func connection(_connection: NSURLConnection, willSendRequestrequest: NSURLRequest, redirectResponseredirectResponse: NSURLResponse?) -> NSURLRequest?Objective C
- (NSURLRequest *)connection:(NSURLConnection *)connectionwillSendRequest:(NSURLRequest *)requestredirectResponse:(NSURLResponse *)redirectResponseПараметры
connectionСоединение, отправляющее сообщение.
requestПредложенный перенаправленный запрос. Делегат должен проверить перенаправленный запрос, чтобы проверить, что он удовлетворяет свои потребности, и создайте копию с новыми атрибутами для возврата к соединению при необходимости.
redirectResponseОтвет URL, вызвавший перенаправление. Может быть
nilв случаях, где этот метод вызывают из-за канонизации URL.Возвращаемое значение
Фактический URL-запрос для использования в свете ответа перенаправления. Делегат может возвратиться
requestнеизмененный для разрешения перенаправления возвратите новый запрос или возвратnilотклонить перенаправление и продолжать обрабатывать соединение.Обсуждение
Если
redirectResponsenil, URL был каноническим (переписанный в его стандартную форму)NSURLProtocolобъект, обрабатывающий запрос. Обновите свой пользовательский интерфейс, чтобы показать стандартизированную форму URL, затем возвратить исходный неизмененный запрос.Иначе, для отмены перенаправления вызовите
connectionобъектcancelметод, затем возвратите предоставленный объект запроса.Для получения организации самого ответа перенаправления возвратиться
nilотменять перенаправление. Соединение продолжает обрабатывать, в конечном счете отправляя Вашему делегату aconnectionDidFinishLoadingилиconnection:didFailLoadingWithError:сообщение, как надлежащий.Для перенаправления запроса к различному URL создайте новый объект запроса и возвратите его.
Делегат должен быть подготовлен получить это сообщение многократно.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
Доступный как часть неофициального протокола до iOS 5.0.
-
Вызванный, когда
NSURLConnectionпотребности ретранслировать запрос, имеющий поток организации для обеспечения нового, нераскрытого потока.Объявление
Swift
optional func connection(_connection: NSURLConnection, needNewBodyStreamrequest: NSURLRequest) -> NSInputStream?Objective C
- (NSInputStream *)connection:(NSURLConnection *)connectionneedNewBodyStream:(NSURLRequest *)requestПараметры
connectionNSURLConnection, запрашивающий новый поток организации.
Возвращаемое значение
Этот метод делегата должен возвратить новый, нераскрытый поток, обеспечивающий содержание организации для запроса.
Если возвращается этот метод делегата
NULL, сбои соединения.Обсуждение
На OS X, если этот метод не реализован, потоковые данные организации являются spooled к диску в случае, если требуется повторная передача. Этот спулинг может не быть желательным для больших наборов данных.
Путем реализации этого метода делегата клиент выбирает из автоматического спулинга и должен обеспечить новый, нераскрытый поток для каждой повторной передачи.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 3.0 и позже.
Доступный как часть неофициального протокола до iOS 5.0.
-
Отправленный, прежде чем соединение хранит кэшируемый ответ в кэше, чтобы дать делегату возможность изменить его.
Объявление
Swift
optional func connection(_connection: NSURLConnection, willCacheResponsecachedResponse: NSCachedURLResponse) -> NSCachedURLResponse?Objective C
- (NSCachedURLResponse *)connection:(NSURLConnection *)connectionwillCacheResponse:(NSCachedURLResponse *)cachedResponseПараметры
connectionСоединение, отправляющее сообщение.
cachedResponseПредложенный кэшируемый ответ для хранения в кэше.
Возвращаемое значение
Фактический кэшируемый ответ для хранения в кэше. Делегат может возвратиться
cachedResponseнеизмененный, возвратите измененный кэшируемый ответ или возвратnilесли никакой кэшируемый ответ не должен быть сохранен для соединения.Обсуждение
Этот метод вызывают только если
NSURLProtocolобрабатывание запроса решает кэшировать ответ. Как правило ответы кэшируются только, когда все следующее является истиной:Запросом является для HTTP или HTTPS URL (или Ваш собственный сетевой протокол, поддерживающий кэширование).
Запрос был успешен (с кодом состояния в
200–299диапазон).Предоставленный ответ прибыл из сервера, а не из кэша.
NSURLRequestполитика кэша объекта позволяет кэшироваться.Связанные с кэшем заголовки в ответе сервера (если есть) позволяют кэшироваться.
Размер ответа является достаточно маленьким к довольно подходящему в кэше. (Например, при обеспечении дискового кэша ответ должен быть не больше, чем приблизительно 5% размера дискового кэша.)
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
Доступный как часть неофициального протокола до iOS 5.0.
