NSURLProtocol
NSURLProtocol абстрактный класс, обеспечивающий базовую структуру для выполнения специфичной для протокола загрузки данных URL. Конкретные подклассы обрабатывают специфические особенности, связанные с одним или более протоколами или схемами URL.
Приложение никогда не должно должно быть непосредственно инстанцировать NSURLProtocol подкласс. Экземпляр надлежащего NSURLProtocol подкласс для NSURLRequest создается NSURLConnection когда запускается загрузка.
NSURLProtocolClient протокол описывает методы, которые реализация использует для управления загрузочной системой URL от a NSURLProtocol подкласс.
Для поддержки настройки специфичных для протокола запросов конструкторы протокола призваны обеспечить категории на NSURLRequest и NSMutableURLRequest. Конструкторы протокола, которые должны расширить возможности NSURLRequest и NSMutableURLRequest таким образом может сохранить и получить специфичные для протокола данные запроса при помощи NSURLProtocolметоды класса propertyForKey:inRequest: и setProperty:forKey:inRequest:.
Существенная ответственность за конструктора протокола создает a NSURLResponse для каждого запроса это обрабатывает успешно. Конструктор протокола может хотеть создать пользовательское, непостоянное NSURLResponse класс для обеспечения протокола определенная информация.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Инициализирует
NSURLProtocolобъект.Объявление
Swift
init(requestrequest: NSURLRequest, cachedResponsecachedResponse: NSCachedURLResponse?, clientclient: NSURLProtocolClient?)Objective C
- (instancetype)initWithRequest:(NSURLRequest *)requestcachedResponse:(NSCachedURLResponse *)cachedResponseclient:(id<NSURLProtocolClient>)clientПараметры
requestURL-запрос на объект протокола URL. Этот запрос сохраняется.
cachedResponseКэшируемый ответ для запроса; может быть
nilесли нет никакого существующего кэшируемого ответа для запроса.clientОбъект, обеспечивающий реализацию протокола NSURLProtocolClient что использование получателя для передачи с загрузочной системой URL. Этот объект клиента сохраняется.
Обсуждение
Подклассы должны переопределить этот метод, чтобы сделать любую пользовательскую инициализацию. Приложение никогда не должно явно вызывать этот метод.
Это - определяемый инициализатор для
NSURLProtocol.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Попытки зарегистрировать подкласс
NSURLProtocol, создание его видимый к загрузочной системе URL.Объявление
Swift
class func registerClass(_protocolClass: AnyClass) -> BoolObjective C
+ (BOOL)registerClass:(Class)protocolClassПараметры
protocolClassПодкласс NSURLProtocol для регистрации.
Возвращаемое значение
YEStrueесли регистрация успешна,NOfalseиначе. Единственное состояние отказа то, еслиprotocolClassне подкласс NSURLProtocol.Обсуждение
Когда загрузочная система URL начинает загружать запрос, с каждым зарегистрированным классом протокола консультируются поочередно, чтобы видеть, может ли это быть инициализировано с указанным запросом. Первое
NSURLProtocolразделите на подклассы для возвратаYEStrueкогда отправлено acanInitWithRequest:сообщение используется для выполнения загрузки URL. Нет никакой гарантии, что будут консультироваться со всеми зарегистрированными классами протокола.С классами консультируются в обратном порядке их регистрации. Подобный проект управляет процессом для создания канонической формы запроса с
canonicalRequestForRequest:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
См. также
-
Не регистрирует указанный подкласс
NSURLProtocol.Объявление
Swift
class func unregisterClass(_protocolClass: AnyClass)Objective C
+ (void)unregisterClass:(Class)protocolClassПараметры
protocolClassПодкласс NSURLProtocol, чтобы не зарегистрироваться.
Обсуждение
После того, как этот метод вызывается,
protocolClassбольше не консультируется загрузочной системой URL.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
См. также
-
Возвращает свойство, связанное с указанным ключом в указанном запросе.
Объявление
Swift
class func propertyForKey(_key: String, inRequestrequest: NSURLRequest) -> AnyObject?Objective C
+ (id)propertyForKey:(NSString *)keyinRequest:(NSURLRequest *)requestПараметры
keyКлюч желаемого свойства.
requestЗапрос, свойства которого должны быть запрошены.
Возвращаемое значение
Свойство связалось с
key, илиnilесли никакое свойство не было сохранено дляkey.Обсуждение
Этот метод предоставляет интерфейс конструкторам протокола к специфичной для протокола доступа информации, связанной с
NSURLRequestобъекты.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
См. также
-
Устанавливает свойство, связанное с указанным ключом в указанном запросе.
Объявление
Swift
class func setProperty(_value: AnyObject, forKeykey: String, inRequestrequest: NSMutableURLRequest)Objective C
+ (void)setProperty:(id)valueforKey:(NSString *)keyinRequest:(NSMutableURLRequest *)requestПараметры
valueЗначение для установки для указанного свойства.
keyКлюч для указанного свойства.
requestЗапрос, для которого можно создать свойство.
Обсуждение
Этот метод используется для обеспечения интерфейса для конструкторов протокола для настройки специфичной для протокола информации, связанной с
NSMutableURLRequestобъекты.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
См. также
-
Удаляет свойство, связанное с указанным ключом в указанном запросе.
Объявление
Swift
class func removePropertyForKey(_key: String, inRequestrequest: NSMutableURLRequest)Objective C
+ (void)removePropertyForKey:(NSString *)keyinRequest:(NSMutableURLRequest *)requestПараметры
keyКлюч, значение которого должно быть удалено.
requestЗапрос, из которого можно удалить значение свойства.
Обсуждение
Этот метод используется для обеспечения интерфейса для конструкторов протокола для настройки специфичной для протокола информации, связанной с
NSMutableURLRequestобъекты.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Возвраты, может ли подкласс протокола обработать указанный запрос.
Объявление
Swift
class func canInitWithRequest(_request: NSURLRequest) -> BoolObjective C
+ (BOOL)canInitWithRequest:(NSURLRequest *)requestПараметры
requestЗапрос, который будет обработан.
Возвращаемое значение
YEStrueесли подкласс протокола может обработатьrequest, иначеNOfalse.Обсуждение
Подкласс должен проверить
requestи определите, может ли реализация выполнить загрузку с тем запросом.Это - абстрактный метод, и подклассы должны обеспечить реализацию.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Возвращает каноническую версию указанного запроса.
Объявление
Swift
class func canonicalRequestForRequest(_request: NSURLRequest) -> NSURLRequestObjective C
+ (NSURLRequest *)canonicalRequestForRequest:(NSURLRequest *)requestПараметры
requestЗапрос, каноническая версия которого желаема.
Возвращаемое значение
Каноническая форма
request.Обсуждение
Это до каждой конкретной реализации протокола для определения то, что «канонический» означает. Протокол должен гарантировать, что тот же входной запрос всегда приводит к той же канонической форме.
Специальное внимание должно быть уделено при реализации этого метода, потому что каноническая форма запроса привыкла к объектам поиска в кэше URL, процесс, выполняющий проверки равенства между
NSURLRequestобъекты.Это - абстрактный метод, и подклассы должны обеспечить реализацию.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Возвраты, эквивалентны ли два запроса в целях кэша.
Объявление
Swift
class func requestIsCacheEquivalent(_aRequest: NSURLRequest, toRequestbRequest: NSURLRequest) -> BoolObjective C
+ (BOOL)requestIsCacheEquivalent:(NSURLRequest *)aRequesttoRequest:(NSURLRequest *)bRequestПараметры
aRequestЗапрос для сравнения
bRequest.bRequestЗапрос для сравнения
aRequest.Возвращаемое значение
YEStrueеслиaRequestиbRequestэквивалентны в целях кэша,NOfalseиначе. Запросы считают эквивалентными в целях кэша, если и только если они были бы обработаны тем же протоколом, и тот протокол объявляет их эквивалентный после выполнения специфичных для реализации проверок.Обсуждение
NSURLProtocolреализация этого метода сравнивает URLs запросов, чтобы определить, нужно ли запросы считать эквивалентными. Подклассы могут переопределить этот метод для обеспечения специфичных для протокола сравнений.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Запускает специфичную для протокола загрузку запроса.
Объявление
Swift
func startLoading()Objective C
- (void)startLoadingОбсуждение
Когда этот метод вызывают, реализация подкласса должна начать загружать запрос, обеспечив обратную связь для загрузочной системы URL через
NSURLProtocolClientпротокол.Подклассы должны реализовать этот метод.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
См. также
-
Останавливает специфичную для протокола загрузку запроса.
Объявление
Swift
func stopLoading()Objective C
- (void)stopLoadingОбсуждение
Когда этот метод вызывают, реализация подкласса должна прекратить загружать запрос. Это могло быть в ответ на работу отмены, таким образом, реализации протокола должны быть в состоянии обработать этот вызов, в то время как загрузка происходит. Когда Ваш протокол принимает вызов к этому методу, он должен также прекратить отправлять уведомления клиенту.
Подклассы должны реализовать этот метод.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
См. также
-
cachedResponse cachedResponseСвойствоКэшируемый ответ получателя. (только для чтения)
Объявление
Swift
@NSCopying var cachedResponse: NSCachedURLResponse? { get }Objective C
@property(readonly, copy) NSCachedURLResponse *cachedResponseОбсуждение
Если не переопределенный в подклассе, этот метод возвращает кэшируемый ответ, сохраненный во время инициализации.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
-
Объект использование получателя для передачи с загрузочной системой URL. (только для чтения)
Объявление
Swift
var client: NSURLProtocolClient? { get }Objective C
@property(readonly, retain) id< NSURLProtocolClient > clientОператор импорта
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Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.2 с установленным Safari 1.0.
Доступный в OS X v10.2.7 и позже.
