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(request
request
: NSURLRequest, cachedResponsecachedResponse
: NSCachedURLResponse?, clientclient
: NSURLProtocolClient?)Objective C
- (instancetype)initWithRequest:(NSURLRequest *)
request
cachedResponse:(NSCachedURLResponse *)cachedResponse
client:(id<NSURLProtocolClient>)client
Параметры
request
URL-запрос на объект протокола 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 для регистрации.
Возвращаемое значение
YES
true
если регистрация успешна,NO
false
иначе. Единственное состояние отказа то, еслиprotocolClass
не подкласс NSURLProtocol.Обсуждение
Когда загрузочная система URL начинает загружать запрос, с каждым зарегистрированным классом протокола консультируются поочередно, чтобы видеть, может ли это быть инициализировано с указанным запросом. Первое
NSURLProtocol
разделите на подклассы для возвратаYES
true
когда отправлено 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 *)
key
inRequest:(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)
value
forKey:(NSString *)key
inRequest:(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 *)
key
inRequest:(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
Запрос, который будет обработан.
Возвращаемое значение
YES
true
если подкласс протокола может обработатьrequest
, иначеNO
false
.Обсуждение
Подкласс должен проверить
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 *)
aRequest
toRequest:(NSURLRequest *)bRequest
Параметры
aRequest
Запрос для сравнения
bRequest
.bRequest
Запрос для сравнения
aRequest
.Возвращаемое значение
YES
true
еслиaRequest
иbRequest
эквивалентны в целях кэша,NO
false
иначе. Запросы считают эквивалентными в целях кэша, если и только если они были бы обработаны тем же протоколом, и тот протокол объявляет их эквивалентный после выполнения специфичных для реализации проверок.Обсуждение
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 и позже.