当加载包含图像的文档(例如Microsoft Word docx文件)时,UIWebView会在收到内存警告时始终缓存图像,无论缓存策略如何。
接下来是示例代码片段:
在这种情况下,如果发生内存警告,应用程序的 tmp 目录中会创建一个新文件夹,通常命名为 DiskImageCache-random_suffix,并将所有打开文档中的图像保存在此处。 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];
在这种情况下,如果发生内存警告,应用程序的 tmp 目录中会创建一个新文件夹,通常命名为 DiskImageCache-random_suffix,并将所有打开文档中的图像保存在此处。 UIWebView 加载一个新请求后,如果我调用
[sharedCache removeAllCachedResponses];
这些临时图片已被删除。
防止缓存这些图片的唯一方法是调用
[NSClassFromString(@"WebCache") performSelector:@selector(setDisabled:) withObject:[NSNumber numberWithBool:YES]];
但这意味着使用私有API。
有没有一种“苹果友好”的方法来实现这个?