Как очистить кеш в 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]);

}
Другие вопросы по тегам