URLCache

URL 요청을 캐시된 응답에 매핑시키는 객체

원문 출처 https://developer.apple.com/documentation/foundation/urlcache

Declaration

class URLCache : NSObject

Summary

SDKs

  • iOS 2.0+

  • macOS 10.2+

  • Mac Catalyst 13.0+ Beta

  • tvOS 9.0+

  • watchOS 2.0+

Framework

  • Foundation

개요

URLCache 클래스는 NSURLRequest 객체를 CachedURLResponse 객체에 매핑함으로써 URL load 요청에 대한 응답의 캐싱을 구현합니다. 또한 인메모리 및 디스크에 저장된 캐시를 제공하며 각 캐시의 크기를 모두 조절할 수 있고 캐시 데이터가 영구적으로 저장될 경로를 제어할 수 있습니다.

Note

iOS에서는 시스템 디스크 공간이 부족할 경우 앱이 실행중이지 않을 때 디스크에 저장된 캐시를 삭제할 수 있습니다.

스레드 안전성

iOS 8, macOS 10.10 이상에서 URLCache는 스레드 안전합니다.

URLCache 인스턴스 메서드들이 여러 실행 컨텍스트에서 호출되더라도 스레드 안전하기는 하지만, cachedResponse(for:)와 storeCachedResponse(_:for:)와 같은 메서드가 같은 요청에 대한 응답을 동시에 읽고 쓰려고 한다면 경쟁상태(race condition)를 피할 수 없으므로 조심해야 합니다.

URLCache의 서브 클래스들은 반드시 이러한 상황에서 스레드 안전하게 동작할 수 있도록 메서드를 오버라이드하여 구현해야 합니다.

Subclassing Notes

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 온 디스크 캐시의 가용 용량을 바이트 단위로 나타냅니다.

캐시 스토리지 정책

  • enum URLCache.StoragePolicy 캐싱 전략을 지정하는 상수로써 CachedURLResponse 객체가 사용합니다.

관련 문서

상속받은 대상

  • NSObject

준수하는 프로토콜

  • CVarArg

  • Equatable

  • Hashable

  • NSCopying

  • NSSecureCoding

같이 보기

캐시 동작

Last updated