【问题标题】:Why isn't the temporary directory being created in the caches directory?为什么不在缓存目录中创建临时目录?
【发布时间】:2013-11-07 19:32:40
【问题描述】:

我可能在这里遗漏了一些非常明显的东西,但是:

NSError *error;
NSURL *cachesDirectory = [[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask][0];
NSLog(@"Caches directory: %@", cachesDirectory);
NSURL *tmpDirectory = [[NSFileManager defaultManager] URLForDirectory:NSItemReplacementDirectory inDomain:NSUserDomainMask appropriateForURL:cachesDirectory create:YES error:&error];
NSLog(@"TMP directory: %@", tmpDirectory);

// Result:
// 2013-10-28 13:37:47.972 MyApp[220:907] Caches directory: file://localhost/var/mobile/Applications/029A4948-A67A-48E5-A35F-1BBCC744E9B0/Library/Caches/
// 2013-10-28 13:37:47.976 MyApp[220:907] TMP directory: file://localhost/var/mobile/Applications/029A4948-A67A-48E5-A35F-1BBCC744E9B0/Library/(A%20Document%20Being%20Saved%20By%20MyApp%2011)/

我希望在缓存目录中创建我的临时目录。来自文档:

您还可以使用此方法创建一个新的临时目录来存储自动保存文件等内容;为此,请为目录参数指定 NSItemReplacementDirectory,为域参数指定 NSUserDomainMask,为 url 参数指定有效的父目录。定位(或创建)所需目录后,此方法返回该目录的 URL。

还有url的定义:

您要在其中创建唯一临时目录以用于自动保存文档或其他用途的目录的名称。除非 directory 参数包含值 NSItemReplacementDirectory 并且 domain 参数包含值 NSUserDomainMask,否则此参数将被忽略。创建临时目录时,会忽略 shouldCreate 参数,始终创建目录。

您可以看到我的临时目录正在Library 中创建。我做错了什么?

【问题讨论】:

    标签: ios cocoa-touch nsfilemanager


    【解决方案1】:

    看起来你没有做错任何事。我刚刚对其进行了测试,发现它的行为方式与您描述的一样。行为不符合文档或文档不正确。我还碰巧找到了人们在讨论完全相同的问题的以下链接:

    http://lists.apple.com/archives/cocoa-dev/2012/Feb/msg00197.html

    【讨论】:

    • 您链接的答案非常好,但也很难阅读该页面的格式。获取文本并使其成为社区 wiki 可能会很好,但我不确定这是否允许。
    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 2010-09-21
    • 2017-01-24
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多