sharedURLCache
Overview 概要
The NSURLCache
class implements the caching of responses to URL load requests, by mapping NSURLRequest
objects to NSCached
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.
NSURLCache
クラスは、URLロードリクエストに対する応答のキャッシュを実装します、NSURLRequest
オブジェクトをNSCached
オブジェクトにマッピングすることによって。それは、メモリ内およびディスク上キャッシュの複合物を提供します、そしてあなたにインメモリおよびオンディスク部分の両方のサイズを操作させます。あなたはまた、そこにおいてキャッシュデータが永続的に格納されるところのパスを制御できます。
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, NSURLCache
is thread safe.
iOS 8以降、そしてmacOS 10.10以降では、NSURLCache
はスレッド安全です。
Although NSURLCache
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 NSURLCache
must implement overridden methods in such a thread-safe manner.
NSURLCache
のサブクラスは、オーバーライドされたメソッドをそのようなスレッド安全な流儀で実装しなければなりません。
Subclassing Notes サブクラス作成の注意
The NSURLCache
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.
NSURLCache
クラスは、そのままで使われることを意図されます、しかしあなたはそれのサブクラスを作ることができます、もしあなたが特別な需要を持つ時は。例えば、あなたはどの応答がキャッシュされるか選別したい、または保安または他の理由のために貯蔵の仕組みを再実装したいかもしれません。
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 Data Task: store
. 応答をキャッシュに格納する — タスク基盤のCached Response: for Request: store
をオーバーライドしてください、リクエスト基盤のCached Response: for Data Task: store
の代わりにまたはそれに加えて。Cached Response: for Request: Getting responses from the cache — Override
get
, instead of or in addition toCached Response For Data Task: completion Handler: cached
. 応答をキャッシュから取得する —Response For Request: get
をオーバーライドしてください、Cached Response For Data Task: completion Handler: cached
の代わりにまたはそれに加えて。Response For Request: Removing cached responses — Override the task-based
remove
, instead of or in addition to the request-basedCached Response For Data Task: remove
. キャッシュされた応答を除去する — タスク基盤のCached Response For Request: remove
をオーバーライドしてください、リクエスト基盤のCached Response For Data Task: remove
の代わりにまたはそれに加えて。Cached Response For Request: