Image caching

hyun·2025년 6월 30일
0

iOS

목록 보기
23/54

 NSCache

메모리에 데이터를 임시로 저장할 수 있는 클래스
이미지, 파일, 계산 결과 같은 걸 반복적으로 사용할 때
성능을 높이고 네트워크 요청을 줄이기 위해 사용됨

 특징

  • 메모리가 부족하면 시스템이 자동으로 캐시를 제거함 (메모리 관리 자동)

  • 딕셔너리처럼 key-value 방식으로 동작

  • 스레드 세이프 — 여러 스레드에서 동시에 접근해도 안전

 써보쟈

private let imageCache = NSCache<NSString, UIImage>()

NSString은 캐시의 키 → 이미지의 URL 문자열

UIImage는 캐시의 값 → 실제 다운로드된 이미지

→ 이 URL로 다운로드한 이미지가 있으면 꺼내 쓰는 것
없으면 네트워크로 가져오고 캐시에 저장

 흐름

fetchImageAsync 함수가 호출됨

imageCache에 해당 URL이 키로 등록된 이미지가 있는지 확인

if let cachedImage = imageCache.object(forKey: urlString as NSString)

있다면 이미지를 그대로 리턴 (네트워크 호출 X)

없다면 다운로드해서 UIImage로 만든 후

imageCache.setObject(image, forKey: urlString as NSString)

캐시에 저장하고 리턴

 왜 쓰나

Objective-C 기반이라 String보다 NSString 타입을 더 지원
그래서 urlString as NSString으로 캐스팅

0개의 댓글