在iOS中删除缓存。可可错误513

时间:2014-09-01 02:02:19

标签: ios objective-c cocoa caching

我的应用必须从网上下载许多图片。所以我想提供一个按钮来清除这些图像的缓存。

  • 这些图片是否保存在/Library/Caches

我假设存在于/ Library / Caches中。所以我试图通过以下方式删除这些文件:

filemgr = [NSFileManager defaultManager];

NSError *error;
[filemgr removeItemAtPath: [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0] error:&error]
// OR
[filemgr removeItemAtPath:[NSHomeDirectory() stringByAppendingString:@"/Library/Caches"] error:&error];

iOS设备中的The operation couldn’t be completed. (Cocoa error 513.)均出错,但在模拟器中有效。

谢谢你的回答!

2 个答案:

答案 0 :(得分:1)

您无法删除“/ Library / Caches”。您需要删除“/ Library / Caches”中的所有项目

NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
for (NSString *filePath in  [[NSFileManager defaultManager] enumeratorAtPath:path])
{
    NSError *error = nil;
    [[NSFileManager defaultManager] removeItemAtPath:[path stringByAppendingPathComponent:filePath] error:&error];
    if (error)
    {
        NSLog(@"%@",error.description);
    }
}

答案 1 :(得分:0)

您无法删除直接缓存文件夹。您必须解析Cache文件夹中的每个文件并将其删除。

感谢。