1

我正在开发一个应用程序,该应用程序允许用户将语音(除其他外)录制到应用程序的 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... !!!");
    }
4

1 回答 1

6

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

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

的方法NSString

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

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

于 2011-05-23T18:24:01.487 回答