2013-10-28 155 views
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,为domain参数指定NSUserDomainMask,并为url参数指定有效的父目录。查找(或创建)所需目录后,此方法将返回该目录的URL。

而且,url定义:

其内部要建立一个唯一的临时目录中自动保存的文档或其他一些使用目录的名称。除非目录参数包含值NSItemReplacementDirectory并且域参数包含值NSUserDomainMask,否则将忽略此参数。在创建临时目录时,忽略shouldCreate参数,并始终创建该目录。

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

回答

1

看起来你没有做错什么。我只是测试它,发现它按照你描述的方式行事。行为不符合文档或文档不正确。我还碰巧发现下面的链接,人们正在讨论完全一样的问题:

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

+0

这就是你挂一个很好的答案,但也很难读懂,页面被格式化的方式。抓住文字并将其制作成社区维基可能不错,但我不确定是否允许。 –

相关问题