iOS开发,清除缓存功能在iOS8上有效,在iOS9和10上无效

清除缓存的代码如下:

// 清理缓存
    NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:cachePath];
    NSLog(@"文件数 :%ld",[files count]);
    for (NSString *p in files)
    {
        NSError *error;
        NSString *path = [cachePath stringByAppendingString:[NSString stringWithFormat:@"/%@",p]];
        if([[NSFileManager defaultManager] fileExistsAtPath:path])
        {
            [[NSFileManager defaultManager] removeItemAtPath:path error:&error];
        }
    }

在iOS8上可以清理缓存,在iOS9 和 iOS10上无效。

阅读 3.2k
2 个回答

项目中用了一个图片库:EGOImageView 清理缓存要用这个库自己的清理方法

先确认一下路径是否有效吧!你拿到的是绝对路径还是相对路径?
其次
NSString *path = [cachePath stringByAppendingString:[NSString stringWithFormat:@"/%@",p]];
最好使用 stringByAppendingPathComponent 这个方式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题