NSURLCache Memory Size is zero

随声附和 提交于 2019-12-05 12:31:32

I've had this problem in apps with webviews. For some reason when webviews initialize they zero the cache, not sure why. In apps like this I use a NSURLCache subclass that ignore calls to setMemoryCapacity: if they are zero.

something like:

-(void)setMemoryCapacity:(NSUInteger)memCap
{
    if (memCap == 0)
        return;
   [super setMemoryCapacity:memCap];
}

I would add "%p" and [NSURLCache sharedURLCache] to your NSLog statements to make sure the shared object remains the same. Then I would add breakpoints for +[NSURLCache setSharedURLCache:] and -[NSURLCache setMemoryCapacity:] to see what's going on.

Had the same problem here. Thought caching doesn't work at all. After setting up a small test project without a UIWebView, the [NSURLCache sharedURLCache] memoryCapacity] returns the expected 10000000 instead of 0.

Luckily the cache will not be cleared, all previously cached objects will remain. So Dougs solution works like a charm!

BTW: once a web view is shown the size will be set to zero. Setting it back to 10000000 afterwards, showing a web view will not set the size to zero again.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!