我正在使用 NSURLRequest 和 CachePolicy 来下载 NSData 中的 plist。当我更改我的 plist 的内容时,我的应用程序会忽略这一点,但仍会显示缓存的内容。缓存会持续多久?如果是这样,是否可以选择说明缓存数据持续多长时间?如果服务器上的数据比缓存更新,是否有办法检查 NSURLRequest 从服务器加载数据,或者它是否等于缓存使用缓存?
问问题
3999 次
1 回答
2
查看URLLoadingSystem 文档中的控制响应缓存。
您可以在委托方法中添加自己的日期
-(NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
使用缓存系统更容易的是ASIHTTPRequest。我推荐使用这个 URL 加载系统。
来自苹果文档:
清单 6 中的示例防止缓存 https 响应。它还将当前日期添加到缓存响应的用户信息字典中。
-(NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
{
NSCachedURLResponse *newCachedResponse = cachedResponse;
if ([[[[cachedResponse response] URL] scheme] isEqual:@"https"]) {
newCachedResponse = nil;
} else {
NSDictionary *newUserInfo;
newUserInfo = [NSDictionary dictionaryWithObject:[NSCalendarDate date]
forKey:@"Cached Date"];
newCachedResponse = [[[NSCachedURLResponse alloc]
initWithResponse:[cachedResponse response]
data:[cachedResponse data]
userInfo:newUserInfo
storagePolicy:[cachedResponse storagePolicy]]
autorelease];
}
return newCachedResponse;
}
于 2012-04-20T17:01:03.280 回答