iOS清除缓存,模拟器是有效的,但在真正的iPhone时不是

时间:2016-10-17 03:58:10

标签: ios iphone nsfilemanager

iOS清除缓存,我删除了无用的文件使用NSFileManager,但是当我在模拟器中执行它时,它可以清除所有无用的文件,当我用真正的iPhone(iPhone 5s)做它时,它无效,谁可以帮助我来解决这个问题?非常感谢你!

代码:

#define docPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]

#define cachePath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]

- (void)clearCaches
{
    [self clearCachesWithFilePath:cachePath];
    NSArray *docFileArr = [self getAllFileNames:docPath];
    for (NSString * fileName in docFileArr) {        
        if (![fileName isEqualToString:@"mqtt.cer"]) {
            [self clearCachesWithFilePath:[docPath stringByAppendingString:[NSString stringWithFormat:@"/%@", fileName]]];
        }
    }
}

- (NSArray *)getAllFileNames:(NSString *)dirPath{
    NSArray *files = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:dirPath error:nil];
    return files;
}

- (BOOL)clearCachesWithFilePath:(NSString *)path{
    NSFileManager *mgr = [NSFileManager defaultManager];
    return [mgr removeItemAtPath:path error:nil];
}

1 个答案:

答案 0 :(得分:0)

您正在尝试删除缓存目录本身,而是获取缓存目录中的内容列表并逐个删除它们。希望这会有所帮助。