2012-06-15 1 views
0

최대 크기에 도달했을 때 TTL (time-to-live) 및 자동 삭제 (auto-clearing) 요소 내에 항목을 제공하는 것을 지원하는 iOS 앱용 메모리 내장형 범용 캐시가 필요합니다. 그런 것이 있습니까?iOS : TTL 및 최대 크기를 가진 메모리 내장 캐시가 있습니까?

NSCache는 TTL을 지원하지 않으므로 작동하지 않습니다.

나는 내 자신을 구르는 과정에 있지만, 그렇게하지 않으면 좋을 것 같습니다.

+0

나는 말합니다 - 자신을 굴려보십시오. TTL은 구현하기가 어렵지 않습니다. –

+0

끈기와 같은 몇 가지 좋은 것들을 원합니다. 네가 맞아,이 중 어느 것도 구현하기가 특히 어렵다. 내가 할 수만 있다면 그것을 구현하는 데 너무 많은 시간을 소비하는 것을 피하고자한다. – cabbagebot

답변

1

NSCache을 사용하면 setTotalCostLimit:을 사용하여 특정 한도를 초과 한 메모리를 제거 할 수 있습니다. 문서 상태입니다.

기본값은 0입니다. 즉, 캐시 크기에 제한이 없음을 의미합니다. 캐시에 개체를 추가하면 개체의 지정된 바이트 수와 같은 지정된 비용을 개체에 전달할 수 있습니다. 이 개체를 캐시에 추가하면 캐시의 총 비용이 totalCostLimit보다 커지기 때문에 캐시는 총 비용이 totalCostLimit 아래로 떨어질 때까지 개체의 일부를 자동으로 제거 할 수 있습니다. 캐시가 객체를 제거하는 순서는 보장되지 않습니다. 이 제한은 엄격한 제한이 아니며 캐시가 제한을 초과하면 캐시의 구현 세부 사항에 따라 캐시의 객체가 즉시 또는 나중에 특정 시점에 제거되거나 불가능할 수 있습니다.

아직 확인하지 않은 경우 Caching and Purgeable Memory 설명서를 확인하십시오.

나는 TTL 지원을 사용하여 C++로 작성된 NSCache 클래스를 실행했습니다. 자신 만의 글을 쓰는 동안 가이드로 이것을 잘 활용하면 체크 아웃 할 수 있습니다 here

희망이 있습니다.

+0

고마워요! 여기에 나온 응답과 내가 본 몇 가지 SA 질문에서 컨센서스가 내 자신을 압도한다는 점을 지적합니다. (이것이 일반적인 문제인 것처럼 느껴졌습니다. 사전 구축 된 솔루션이없는 것은 무엇입니까?). 아무도 더 나은 답변을 제시하지 않으면 귀하의 답변을 수락합니다. – cabbagebot

관련 문제