1

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

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。我究竟做错了什么?

4

1 回答 1

0

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

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

于 2013-10-28T21:18:22.480 回答