在理解iOS中的缓存机制方面,我有点困惑。
我一直在NSURLCache上阅读这个博客来定制我的缓存策略。我希望我的缓存完全由我的服务器缓存头控制。
所以我决定
[request setCachePolicy:NSURLRequestReturnCacheDataElseLoad];现在,上面的博客指定我也可以为NSCachedURLResponse指定缓存策略。
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
{
NSMutableDictionary *mutableUserInfo = [[cachedResponse userInfo] mutableCopy];
NSMutableData *mutableData = [[cachedResponse data] mutableCopy];
NSURLCacheStoragePolicy storagePolicy = NSURLCacheStorageAllowedInMemoryOnly;
// ...
return [[NSCachedURLResponse alloc] initWithResponse:[cachedResponse response]
data:mutableData
userInfo:mutableUserInfo
storagePolicy:storagePolicy];
}那么,首先对请求有一个缓存策略的用途是什么?存储策略是请求参数或响应参数。
发布于 2014-04-28 21:47:52
区别在于:
NSURLRequestCachePolicy是客户端服务器数据管理功能,它描述应该加载的数据源(、本地缓存、或远程服务器)以及它们之间的条件。
NSURLCacheStoragePolicy只是描述本地缓存存储的客户端数据管理功能(内存、本地数据库等;只有内存;无)。
例如,如果您使用NSURLRequestReturnCacheDataElseLoad作为请求,使用NSURLCacheStorageAllowedInMemoryOnly作为响应,则会发生这样的情况:
https://stackoverflow.com/questions/23350671
复制相似问题