iphone - 什么时候清除iPhone应用程序缓存?

标签 iphone ios avfoundation application-cache

我正在开发一个应用程序,该应用程序允许用户将声音(除其他外)记录到该应用程序的“文档”目录中。但是,当我录制声音时,我将录制到应用程序的缓存目录中,然后在用户说“好,保存此内容”之后,再将其处理到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/

相关文章:

ios - 有没有更好的方法来观察键值变化?

ios - UIView渐进式动画

javascript - WebView/UIWebView 中的javascript 和object-c 对象如何相互通信?

iphone - 在 iOS8 中使用 UISearchBar 启用取消按钮

ios - RKManagedObjectRequestOperation NSManagedObjectContext::save 中的 EXC_BREAKPOINT

ios - iOS-用户能否访问App Bundle内容(特别是Bundle资源)

iOS - 以编程方式获取当前播放的项目队列

iPhone 访问 Springboard 图标

ios - 无法识别的选择器发送到 UIButton 中的实例

camera - 截取 UIView 的屏幕截图,其中它的 subview 是相机 session