In iOS 7, I was able to set a shared URL cache to a subclass of NSURLCache
and any UIWebView
s I created would automatically use that shared cache for each request.
// Set the URL cache and leave it set permanently
ExampleURLCache *cache = [[ExampleURLCache alloc] init];
[NSURLCache setSharedURLCache:cache];
However, now in iOS 8 it doesn't seem like UIWebView pulls from the shared cache and cachedResponseForRequest
never gets called.
Has anyone found documentation for this change, or a workaround?
I had same problem today. It was ok on ios7 and broken on ios8.
The trick is to create your own cache as the first thing you do in didFinishLaunchingWithOptions.
You can see this being done in other apps:
https://github.com/AFNetworking/AFNetworking/blob/master/Example/AppDelegate.m
This site, while old, has more info on why you shouldn't even call [NSURLCache sharedInstance] before the above code: http://inessential.com/2007/02/28/figured_it_the_heck_out