init(request: URLRequest, cachedResponse : CachedURLResponse?, client: URLProtocolClient?)
init(task: URLSessionTask, cachedResponse : CachedURLResponse?, client: URLProtocolClient?)
Availability 有効性
Technology
class URLProtocol : NSObject
Don’t instantiate a URLProtocol
subclass directly. Instead, create subclasses for any custom protocols or URL schemes that your app supports. When a download starts, the system creates the appropriate protocol object to handle the corresponding URL request. You define your protocol class and call the register
class method during your app’s launch time so that the system is aware of your protocol.
URLProtocol
サブクラスを直接にインスタンス化しないでください。その代わりに、何らかのあつらえのプロトコルまたはあなたのアプリがサポートするURLスキームに対するサブクラスを作成してください。あるダウンロードが始まる時、システムは適切なプロトコルオブジェクトを作成して、対応するURLリクエストを取り扱います。あなたは、あなたのプロトコルクラスを定義して、register
クラスメソッドをあなたのアプリのもつ起動時間の間に呼び出します、それでシステムはあなたのプロトコルを知っています。
Note 注意
You cannot use this class to define custom URL schemes and protocols in watchOS 2 and later. あなたは、このクラスを使ってあつらえのURLスキームとプロトコルをwatchOS 2以降で定義できません。
To support the customization of protocol-specific requests, create extensions to the URLRequest
class to provide any custom API that you need. You can store and retrieve protocol-specific request data by using URLProtocol
’s class methods property(for
and set
.
プロトコル特有リクエストのカスタマイゼーションをサポートするには、URLRequest
クラスへの拡張を作成することで、あなたが必要とする何らかのAPIを提供してください。あなたはプロトコル特有リクエストデータの格納および回収を、URLProtocol
のもつクラスメソッドproperty(for
とset
を使うことによって行えます。
Create a URLResponse
for each request your subclass processes successfully. You may want to create a custom URLResponse
class to provide protocol specific information.
URLResponse
をあなたのサブクラスがうまく処理する各リクエストに対して作成してください。あなたは、あつらえのURLResponse
クラスを作成して、プロトコル特有の情報を提供したいかもしれません。
When overriding methods of this class, be aware that methods that take a task
parameter are preferred by the system to those that do not. Therefore, you should override the task-based methods when subclassing, as follows:
このクラスのメソッドをオーバーライドする場合、task
パラメータを取るメソッドは、そうしないものよりシステムによって好まれることを自覚しておいてください。それゆえに、あなたは、サブクラスを作る場合は、タスク基盤のメソッドをオーバーライドするべきです、次のように:
Initialization — Override init(task:
instead of or in addition to init(request:
. Also override the task-based can
instead of or in addition to the request-based can
.
初期化 — init(task:
をオーバーライドしてください、init(request:
の代わりにまたはそれに加えて。またタスク基盤のcan
もオーバーライドしてください、リクエスト基盤のcan
の代わりにまたはそれに加えて。
init(request: URLRequest, cachedResponse : CachedURLResponse?, client: URLProtocolClient?)
init(task: URLSessionTask, cachedResponse : CachedURLResponse?, client: URLProtocolClient?)
class func registerClass (AnyClass) -> Bool
URLProtocol
, making it visible to the URL loading system.
URLProtocol
のサブクラスの登録を試みます、それがURLローディングシステムに見えるようにします。
class func unregisterClass (AnyClass)
URLProtocol
.
指定されたURLProtocol
のサブクラスを登録解除します。
class func canInit (with: URLRequest) -> Bool
class func canInit (with: URLSessionTask) -> Bool
class func property(forKey : String, in: URLRequest) -> Any?
class func setProperty (Any, forKey : String, in: NSMutableURLRequest)
class func removeProperty (forKey : String, in: NSMutableURLRequest)
class func canonicalRequest (for: URLRequest) -> URLRequest
class func requestIsCacheEquivalent (URLRequest, to: URLRequest) -> Bool
func startLoading ()
func stopLoading ()
var cachedResponse : CachedURLResponse?
var client: URLProtocolClient?
protocol URLProtocolClient
URLProtocol
subclasses to communicate with the URL Loading System.
URLProtocol
サブクラスによってURLローディングシステムと通信するのに使われるインターフェイス。
var request: URLRequest
var task: URLSessionTask?
var protocolClasses : [AnyClass]?