Как очистить кеш в iOS10?
Я пытаюсь очистить кэш в iOS 10. Но removeAllCachedResponses
не работает. Является removeAllCachedResponses
сломан в iOS10. Как это работает в iOS 9.
2 ответа
Это то, о чем ты говоришь?
[[NSURLCache sharedURLCache] removeAllCachedResponses];
Вы также можете изменить поведение кеша ваших запросов, чтобы выборочно кешировать ответы. Если вы используете AFNetworking
случайно вы можете использовать setCacheResponseBlock
, Например, в одном проекте я настроил его на возврат nil
для всех больших видео и аудио файлов. Но позвольте ему кэшировать файлы меньшего размера.
[streamingOperation setCacheResponseBlock:^NSCachedURLResponse *(NSURLConnection *connection, NSCachedURLResponse *cachedResponse) {
return nil; // Ensures we are not unecessarily caching asset data to Cache.db
}];
Если вы хотите удалить файл из каталога приложения. Есть много способов, чтобы путь файла из каталога, следующие являются одним из них.
NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *mainPath = [myPathList objectAtIndex:0];
mainPath = [mainPath stringByAppendingPathComponent:DirectoryName];
Теперь вы можете удалить файл по этому пути, основной путь - Полный путь к файлу.
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
BOOL fileExists = [fileManager fileExistsAtPath:mainPath];
if (fileExists)
{
BOOL success = [fileManager removeItemAtPath:mainPath error:&error];
if (!success) NSLog(@"Error: %@", [error localizedDescription]);
}