iPhone应用程序caching何时清除?

我正在开发一个应用程序,让用户在应用程序的Documents目录中录制语音(等等)。 但是当我录制声音时,我正在录制到应用程序的caching目录,然后在用户说“好的,保存这个”之后,我正在处理文档目录。 到目前为止所有这些工作。 但是,如果我尝试删除caching中的数据文件,或者当我尝试移动它,我遇到问题。

所以我的问题是,我应该把数据留在caching中,以便iOS将处理它,或者我需要手动删除caching中的文件。 如果是的话,我将如何去做。 这是我到目前为止的代码(这是行不通的)

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... !!!"); } 

我认为问题是你的path不正确。 始终使用

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

NSString方法。

你可以尝试打印出你现在得到的path(也许反斜杠丢失),但无论如何,你应该使用我所描述的方法。

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