class var shared: URLCache
Overview 概要
The URLCache
class implements the caching of responses to URL load requests, by mapping NSURLRequest
objects to Cached
objects. It provides a composite in-memory and on-disk cache, and lets you manipulate the sizes of both the in-memory and on-disk portions. You can also control the path where cache data is persistently stored.
URLCache
クラスは、URLロードリクエストに対する応答のキャッシュを実装します、NSURLRequest
オブジェクトをCached
オブジェクトにマッピングすることによって。それは、メモリ内およびディスク上キャッシュの複合物を提供します、そしてあなたにインメモリおよびオンディスク部分の両方のサイズを操作させます。あなたはまた、そこにおいてキャッシュデータが永続的に格納されるところのパスを制御できます。
Note 注意
In iOS, the on-disk cache may be purged when the system runs low on disk space, but only when your app is not running. iOSでは、オンディスクキャッシュはシステムが不十分なディスクスペースで動作する時に、しかしあなたのアプリが動作していない時のみ、消去されるかもしれません。
Thread Safety スレッド安全
In iOS 8 and later, and macOS 10.10 and later, URLCache
is thread safe.
iOS 8以降、そしてmacOS 10.10以降では、URLCache
はスレッド安全です。
Although URLCache
instance methods can safely be called from multiple execution contexts at the same time, be aware that methods like cached
and store
have an unavoidable race condition when attempting to read or write responses for the same request.
Subclasses of URLCache
must implement overridden methods in such a thread-safe manner.
URLCache
のサブクラスは、オーバーライドされたメソッドをそのようなスレッド安全な流儀で実装しなければなりません。
Subclassing Notes サブクラス作成の注意
The URLCache
class is meant to be used as-is, but you can subclass it when you have specific needs. For example, you might want to screen which responses are cached, or reimplement the storage mechanism for security or other reasons.
URLCache
クラスは、そのままで使われることを意図されます、しかしあなたはそれのサブクラスを作ることができます、もしあなたが特別な需要を持つ時は。例えば、あなたはどの応答がキャッシュされるか選別したい、または保安または他の理由のために貯蔵の仕組みを再実装したいかもしれません。
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
パラメータを取るメソッドは、そうしないものよりシステムによって好まれることを自覚しておいてください。それゆえに、あなたは、サブクラスを作る場合は、タスク基盤のメソッドをオーバーライドするべきです、次のように:
Storing responses in the cache — Override the task-based
store
, instead of or in addition to the request-basedCached Response(_: for:) store
. 応答をキャッシュに格納する — タスク基盤のCached Response(_: for:) store
をオーバーライドしてください、リクエスト基盤のCached Response(_: for:) store
の代わりにまたはそれに加えて。Cached Response(_: for:) Getting responses from the cache — Override
get
, instead of or in addition toCached Response(for: completion Handler:) cached
. 応答をキャッシュから取得する —Response(for:) get
をオーバーライドしてください、Cached Response(for: completion Handler:) cached
の代わりにまたはそれに加えて。Response(for:) Removing cached responses — Override the task-based
remove
, instead of or in addition to the request-basedCached Response(for:) remove
. キャッシュされた応答を除去する — タスク基盤のCached Response(for:) remove
をオーバーライドしてください、リクエスト基盤のCached Response(for:) remove
の代わりにまたはそれに加えて。Cached Response(for:)