NSCache의 생명주기를 관리하기
NSCache
를 사용하다보면 시스템에 의해 의도치 않게 cache
가 삭제되는 경우가 있다. 이럴경우 protocol NSDiscardableContent
를 이용해 cache
삭제에 대한 정책을 정의할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import Foundation
final class LottieAnimationCacheObject: NSObject,
NSDiscardableContent {
internal var animation: LottieAnimation?
internal func beginContentAccess() -> Bool {
return true
}
internal func endContentAccess() {}
internal func discardContentIfPossible() {
animation = nil
}
internal func isContentDiscarded() -> Bool {
return animation == nil
}
}
참고
protocol NSDiscardableContent
NSCache instead of LRUCache for LottieView animation would restart from beginning after backgrounding app
This post is licensed under CC BY 4.0 by the author.