리소스가 부족할 때 제거될 수 있는, 변경 가능한(Mutable) Key-value 쌍의 컬렉션
캐시 객체와 다른 가변 컬렉션들은 다음과 같은 차이를 가지고 있다.
NSCache
클래스는 캐시가 메모리를 너무 많이 차지하지 않도록 여러 자동 제거 정책을 사용한다. 다른 애플리케이션에서 메모리를 사용하고자 할 때 이러한 정책들로부터 일부 항목을 제거한다.NSMutableDictionary
와 달리, 안에 들어있는 key객체를 복사하지 않는다.countLimit
변수로 캐시가 최대로 가질 수 있는 객체의 수를 조절할 수 있다.totalCostLimit
변수로 객체 제거 전 캐시가 유지할 수 있는 최대 비용을 조절할 수 있다.KeyType: AnyObject
, ObjectType: AnyObject
이므로 클래스 타입만을 사용할 수 있고, Swift의 기본 데이터 타입들은 구조체(struct
)이므로 사용할 수 없다.