1
我对理解iOS中的缓存机制有点困惑。NSURLCacheStoragePolicy请求与响应
我一直在阅读这个博客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];
}
那么,首先有什么使用缓存策略的请求? 存储策略是请求参数还是响应参数。
这是否意味着热曲est缓存策略作为HTTP请求头发送,以便服务器可以在其末尾决定缓存策略? NSURLRequestCachePolicy如何影响客户端呢? –
@KunalBalani,不,NSURLRequestCachePolicy的值不会发送到服务器。它用于决定如何加载数据:从远程服务器或本地缓存。服务器可以为缓存提供任何附加信息(例如,数据可以从缓存中加载的时间段。例如,如果服务器设置header:cache-control:600,则意味着在接下来的10分钟(600秒)会从缓存中加载数据。 –