当加载包含图像(如Microsoft Word中的docx文件)的文件,当它接收到内存无论缓存策略的警告UIWebView中会一直缓存图像。
下面,有一个示例代码段:
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:1024 * 1024
diskCapacity:0
diskPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"URLCache"]];
[NSURLCache setSharedURLCache:sharedCache];
NSURLRequest* req = [NSURLRequest requestWithURL:
[NSURL URLWithString:@"http://www.its.swinburne.edu.au/about/projects/templates/TechnicalSpecificationTemplatev1.1-[ProjectName]-[ver]-[YYYYMMDD].docx"]
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:10];
在这种情况下,如果出现内存不足的警告,一个新的文件夹中的应用程序,通常命名为DiskImageCache-random_suffix的tmp目录中创建和打开的文档中的所有图像保存在这里。
经过一个UIWebView加载一个新的请求,如果我叫
[sharedCache removeAllCachedResponses];
这些临时的图像将被删除。
以防止缓存图像的唯一方法是调用
[NSClassFromString(@"WebCache") performSelector:@selector(setDisabled:) withObject:[NSNumber numberWithBool:YES]];
但是这意味着使用私有API。
是否有一个“苹果型”的方式来实现这一目标?