Skip to content

NSCache

Taehyeon Kim edited this page Nov 16, 2022 · 2 revisions

NSCache

Foundation > Collections > NSCache


Definition

A mutable collection you use to temporarily store transient key-value pairs that are subject to eviction when resources are low.
리소스가 부족할 때 제거될 수 있는 일시적인 키-값 쌍을 임시로 저장하는데 사용하는 변경 가능(Mutable)한 컬렉션

출처: Apple Developer - NSCache

  • 시스템 메모리를 너무 많이 사용하지 않도록 Auto-Eviction Policies(자동 제거 정책)을 따르고 있습니다.
  • Thread-Safe 합니다. 캐시를 Lock하지 않아도 다른 Thread에서 캐시의 항목을 추가, 제거, 검색할 수 있습니다.
  • NSMutableDictionary와 달리 캐시에 넣은 키(Key)를 복사하지 않습니다.

Declaration

class NSCache<KeyType, ObjectType> : NSObject where KeyType : AnyObject, ObjectType : AnyObject
  • Key와 Value(Object)는 AnyObject를 준수해야 합니다.
  • NSCache 객체를 생성 시에 String 타입을 키 값으로 가지고 싶다면 NSString 타입을 사용해주어야 합니다.

Methods

조회(Get)

func object(forKey: KeyType) -> ObjectType?

추가(Add)

func setObject(ObjectType, forKey: KeyType)
func setObject(ObjectType, forKey: KeyType, cost: Int)
  • cost를 지정해줄 수도 있습니다.

제거(Remove)

func removeObject(forKey: KeyType) // 특정 Key 제거
func removeAllObjects()            // 캐시 전부 비움
Clone this wiki locally