我正在开发一款应用,可让用户将语音(以及其他内容)录制到应用的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... !!!");
}
答案 0 :(得分:6)
我认为问题在于你的道路不正确。始终使用
- (NSString *)stringByAppendingPathComponent:(NSString *)aString
NSString
的方法。
您可以尝试打印出现在获得的路径(可能缺少反斜杠),但无论如何您应该使用我所描述的方法。
UPD:另一件事是NSCachesDirectory
实际上从未被清理过。如果您想要自动清洁,请使用NSTemporaryDirectory()
。