何时清除iPhone应用缓存?

时间:2011-05-23 18:04:37

标签: iphone ios avfoundation application-cache

我正在开发一款应用,可让用户将语音(以及其他内容)录制到应用的Documents目录中。但是当我录制语音时,我正在录制到应用程序的缓存目录,然后在用户说“好了,保存这个”之后,然后我将它复制到Documents目录。到目前为止所有这些工作。但是,如果我尝试删除缓存中的数据文件,或者当我尝试移动它时,我会遇到问题。

所以我的问题是,我是否应该将数据留在缓存中以便iOS处理它,或者我是否需要手动删除缓存中的文件。如果是这样,我将如何去做呢。这是我到目前为止的代码(不起作用)

    NSFileManager *fm = [NSFileManager defaultManager];
    NSString *directory = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSError *error = nil;
    BOOL success = [fm removeItemAtPath:[NSString stringWithFormat:@"%@%@", directory, currentEntry.audioFileURL] error:&error];
    if (!success || error) {
        // it failed.
        NSLog(@"it failed to delete!!! %@ %@", error, [error userInfo]);
    } else {
        NSLog(@"Deleted... yipee... !!!");
    }

1 个答案:

答案 0 :(得分:6)

我认为问题在于你的道路不正确。始终使用

- (NSString *)stringByAppendingPathComponent:(NSString *)aString

NSString的方法。

您可以尝试打印出现在获得的路径(可能缺少反斜杠),但无论如何您应该使用我所描述的方法。

UPD:另一件事是NSCachesDirectory实际上从未被清理过。如果您想要自动清洁,请使用NSTemporaryDirectory()