ist die Beispielfunktion i aufrufen, wenn i-Cache löschen müssen und einen neuen AnrufNSURLCache nicht gespeicherten Antworten in iOS8 löschen
- (void)clearDataFromNSURLCache:(NSString *)urlString
{
NSURL *requestUrl = [NSURL URLWithString:urlString];
NSURLRequest *dataUrlRequest = [NSURLRequest requestWithURL: requestUrl];
NSURLCache * cache =[NSURLCache sharedURLCache];
NSCachedURLResponse* cacheResponse =[cache cachedResponseForRequest:dataUrlRequest];
if (cacheResponse) {
NSString* dataStr = [NSString stringWithUTF8String:[[cacheResponse data] bytes]];
NSLog(@"data str r= %@",dataStr);
NSLog(@"url str r= %@",[[[cacheResponse response] URL] absoluteString]);
[cache storeCachedResponse:nil forRequest:dataUrlRequest];
[NSURLCache setSharedURLCache:cache];
}
[[NSURLCache sharedURLCache] removeCachedResponseForRequest:dataUrlRequest];
//Check if the respnase data has been removed/deleted from cache
NSURLRequest *finalRequestUrlRequest = [NSURLRequest requestWithURL:requestUrl];
NSURLCache * finalCache =[NSURLCache sharedURLCache];
NSCachedURLResponse* finalcacheResponse =[finalCache cachedResponseForRequest:finalRequestUrlRequest];
if (finalcacheResponse) {
//Should not enter here
NSString* finaldataStr = [NSString stringWithUTF8String:[[finalcacheResponse data] bytes]];
NSLog(@"data str r= %@",finaldataStr);
NSLog(@"url str r= %@",[[[cacheResponse response] URL] absoluteString]);
}
}
In iOS 7.6 URL machen die Antwort erfolgreich für die gelöscht wird requestURL, aber in iOS 8 wird es nie gelöscht. Ich habe gesucht, konnte aber keinen Grund finden, warum dies in iOS8 nicht funktionieren sollte.
Jede mögliche Hilfe ... geschätzt werden ..
Ich sehe auch removeCachedResponseForRequest: funktioniert nicht in iOS 8.3. – osxdirk
Funktioniert immer noch nicht auf iOS 9.2 –
Aufgebrochen 9.3 & 9.3.1 – mmackh