URLCache
URL 요청을 캐시된 응답에 매핑시키는 객체
Last updated
URL 요청을 캐시된 응답에 매핑시키는 객체
Last updated
원문 출처
SDKs
iOS 2.0+
macOS 10.2+
Mac Catalyst 13.0+
Beta
tvOS 9.0+
watchOS 2.0+
Framework
Foundation
URLCache 클래스는 객체를 객체에 매핑함으로써 URL load 요청에 대한 응답의 캐싱을 구현합니다. 또한 인메모리 및 디스크에 저장된 캐시를 제공하며 각 캐시의 크기를 모두 조절할 수 있고 캐시 데이터가 영구적으로 저장될 경로를 제어할 수 있습니다.
iOS 8, macOS 10.10 이상에서 URLCache는 스레드 안전합니다.
URLCache 인스턴스 메서드들이 여러 실행 컨텍스트에서 호출되더라도 스레드 안전하기는 하지만, cachedResponse(for:)와 storeCachedResponse(_:for:)와 같은 메서드가 같은 요청에 대한 응답을 동시에 읽고 쓰려고 한다면 경쟁상태(race condition)를 피할 수 없으므로 조심해야 합니다.
URLCache의 서브 클래스들은 반드시 이러한 상황에서 스레드 안전하게 동작할 수 있도록 메서드를 오버라이드하여 구현해야 합니다.
URLCache 클래스는 있는 그대로 사용되도록 만들어졌지만 캐시가 필요한 응답을 가려내려 하거나, 보안상의 이유로 저장 메커니즘을 재구현 하려는 등 특정한 경우에는 서브클래싱 할 필요가 생길수도 있습니다.
이 클래스의 메서드를 오버라이드 할 경우, 시스템이 task 파라미터를 사용하는 메서드를 그렇지 않은 메서드보다 우선시 한다는 것을 유의해야 합니다. 그러므로 서브클래싱을 할때에는 다음과 같이 task 기반의 메서드를 오버라이드 해야합니다:
class var shared: URLCache 공유 URL 캐시 인스턴스
init(memoryCapacity: Int, diskCapacity: Int, diskPath: String?) Deprecated
Creates an URL cache object with the specified values.
func cachedResponse(for: URLRequest) -> CachedURLResponse? 지정된 URL 요청에 대한 캐시된 URL 응답을 반환합니다.
func storeCachedResponse(CachedURLResponse, for: URLRequest) 지정된 URL 요청에 대한 캐시된 URL 응답을 저장합니다.
func getCachedResponse(for: URLSessionDataTask, completionHandler: (CachedURLResponse?) -> Void) data task에 대한 캐시된 URL 응답을 읽어서 completion handler로 전달합니다.
func storeCachedResponse(CachedURLResponse, for: URLSessionDataTask) 지정된 data task에 대한 캐시된 URL 응답을 저장합니다.
func removeCachedResponse(for: URLRequest) 지정된 URL 요청에 대한 캐시된 URL 응답을 삭제합니다.
func removeCachedResponse(for: URLSessionDataTask) 지정된 data task에 대한 캐시된 URL 응답을 삭제합니다.
func removeCachedResponses(since: Date) 지정된 날짜 이전의 모든 캐시된 응답을 삭제합니다.
func removeAllCachedResponses() 수신자의 저장된 모든 캐시된 URL 응답을 삭제합니다.
var currentDiskUsage: Int 온 디스크 캐시의 현재 크기를 바이트 단위로 나타냅니다.
var diskCapacity: Int 온 디스크 캐시의 가용 용량을 바이트 단위로 나타냅니다.
NSObject
CVarArg
Equatable
Hashable
NSCopying
NSSecureCoding
응답을 캐시로 저장할 때 — request 기반의 대신에 task 기반의 를 오버라이드하세요.
캐시에서 응답을 읽어올 때 — 대신에 를 오버라이드하세요.
캐시된 응답을 삭제할 때 — request 기반의 대신에 task기반의 를 오버라이드하세요.
enum URLCache.StoragePolicy 캐싱 전략을 지정하는 상수로써 객체가 사용합니다.
URL 요청시 캐시 데이터의 사용방식을 제어합니다.
class URL 요청에 대해 캐시된 응답