An object that maps URL requests to cached response objects.
- iOS 2.0+
- macOS 10.2+
- Mac Catalyst 13.0+
- tvOS 9.0+
- watchOS 2.0+
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.
In iOS 8 and later, and macOS 10.10 and later,
NSURLCache is thread safe.
NSURLCache instance methods can safely be called from multiple execution contexts at the same time, be aware that methods like
store have an unavoidable race condition when attempting to read or write responses for the same request.
NSURLCache must implement overridden methods in such a thread-safe manner.
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.
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: