메모리 경고가있는 경우 디스크 캐시가 아닌 메모리 캐시를 지우면됩니다. removeAllCachedResponses
의 문제는 둘 다 해결된다는 것입니다. 내 테스트에서 이것은 메모리 캐시를 지우는 것으로 보인다.
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
NSURLCache * const urlCache = [NSURLCache sharedURLCache];
const NSUInteger memoryCapacity = urlCache.memoryCapacity;
urlCache.memoryCapacity = 0;
urlCache.memoryCapacity = memoryCapacity;
}
유일한 관심사는 스레딩 문제입니다. this 기사 하단에 발자국이 있습니다. 캐시가 다시 생성되는 동안 요청이 다른 스레드에서 발생할 때를 재현하여 NSURLCache 퍼지 약에 StackOverflow에 대한 권장 사항이 많이 있습니다
, 그러나, 우리는 가끔 충돌이 리드를 본 적이있다. 따라서 앱이 시작될 때 캐시를 한 번 만들고 적절한 경우 캐시를 삭제하는 것이 좋습니다.
위의 해결 방법은 캐시를 다시 만들지 않지만 동일한 문제가 여전히 발생할 수 있으므로 광범위하게 테스트하지 않았습니다.
이렇게 생각하지 않습니다. 이미지 캐시를 지워야합니다. –
@ RajanBalana, 어떻게 이미지 캐시를 지우려면 어떻게합니까? – zt9788
@ zt9788 이미지 캐시를 지우는 방법을 찾았습니까? –