2013-10-28 151 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

這就是你掛一個很好的答案,但也很難讀懂,頁面被格式化的方式。抓住文字並將其製作成社區維基可能不錯,但我不確定是否允許。 –

相關問題