3
我已經配置了會議:IOS NSURLSession(默認配置)不緩存請求
- (void)createSession {
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
sessionConfig.requestCachePolicy = NSURLRequestReturnCacheDataElseLoad;
_session = [NSURLSession sessionWithConfiguration:sessionConfig];
}
然後,我儘量讓(從Twitter的API獲取圖像)對服務器的請求:
NSURL *url = tweet.mediaUrl;
NSURLSessionDownloadTask *getImageTask =
[_session downloadTaskWithURL:url
completionHandler:^(NSURL *location,
NSURLResponse *response,
NSError *error) {
UIImage *downloadedImage = [UIImage imageWithData: [NSData dataWithContentsOfURL:location] ];
dispatch_async(dispatch_get_main_queue(), ^{
//setting image to a view
});
}];
[getImageTask resume];
圖像正在加載和設置正確,但是當我關閉我的機器上的Internet連接(不終止應用程序,它仍然運行...)我得到空的UIImageViews - 所以會話嘗試從服務器下載圖像,但不使用任何緩存。
導致此問題的原因是什麼?
我試着使用共享會話,或者用預定義的磁盤和內存空間配置共享緩存,沒有什麼幫助。
iOS模擬器,iOS 8+
可能重複[可以在iOS上使用HTTP緩存與NSURLSessionDownloadTask?](http://stackoverflow.com/questions/26175133/can-i-use- http-cache-with-an-nsurlsessiondownloadtask-on-ios) – jlehr
是的,看起來像是一個bug,但我想看到成功使用上述技術的人。 –