我正在开发一个应用程序,该应用程序允许用户将声音(除其他外)记录到该应用程序的“文档”目录中。但是,当我录制声音时,我将录制到应用程序的缓存目录中,然后在用户说“好,保存此内容”之后,再将其处理到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... !!!");
}
最佳答案
我认为问题在于您的路径不正确。始终使用
- (NSString *)stringByAppendingPathComponent:(NSString *)aString
NSString
方法。您可以尝试打印出现在得到的路径(也许缺少反斜杠),但是无论如何,您都应该使用我描述的方法。
UPD:另一件事是
NSCachesDirectory
实际上从未清除。如果要自动清洁,请使用NSTemporaryDirectory()
。
关于iphone - 什么时候清除iPhone应用程序缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6101067/