2015-10-04 51 views
0

這裏是NSURL對象,我使用的用於創建和iOS上訪問重要的配置文件與特點:訪問本地存儲(從用戶隱藏,下庫)文件中的iOS

  • 從用戶隱藏
  • 不是用戶生成的文件(存儲與用戶配置)
  • 不臨時或高速緩存(未可能後來與現有的數據創建)
  • 必須由iCloud的/ iTunes的

    備份
    [NSURL fileURLWithPath:[[NSSearchPathForDirectoriesInDomains(
             NSLibraryDirectory, 
             NSUserDomainMask, 
             YES) objectAtIndex:0] 
    stringByAppendingString:@"/important.txt"]]; 
    

FileSystemOverview (developer.apple.com)建議,我Library下保存這個文件。 也許更好的方法是將其存儲在Library/Application Support下。

使用NSSearchPathForDirectoriesInDomains,這需要:


這是存儲這些文件的正確方法是什麼?

NSSearchPathDirectoryNSSearchPathDomainMask有幾種替代方案。

又如何在iOS上需要expandTilde

有沒有更好的方法做到這一點,而不是創建路徑爲NSString使用objectAtIndex和附加文件名然後將其轉換爲NSURL

謝謝。

回答

2

使用NSApplicationSupportDirectory將是我的第一選擇。

但要保持幾件事情:

  1. 與「文檔」文件夾,「庫/ Application Support」文件夾中不iOS應用沙盒存在默認情況下,所以你必須創建文件夾在嘗試使用它之前。
  2. 「隱藏來自用戶」僅表示用戶在正常情況下不會看到它。但任何擁有任何技術知識的人都可以輕鬆訪問該文件。

你想通過YESexpandTilde參數,以便您的應用程序,當你運行在模擬器應用程序返回一條合適的路徑。在真正的iOS設備上,它幾乎沒有什麼區別。

請勿使用stringByAppendingString:來創建路徑。使用stringByAppendingPathComponent:

NSString *appSupportPath = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) firstObject]; 
NSString *filePath = [appSupportPath stringByAppendingPathComponent:@"important.txt"]; 
NSURL *fileURL = [NSURL fileURLWithPath:filePath]; 

可以使用NSFileManager得到直接NSURL

NSURL *appSupportURL = [[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask] firstObject]; 
NSURL *fileURL = [appSupportURL URLByAppendingPathComponent:@"important.txt"]; 
+0

非常感謝你,這真的幫助:) – Psychomentality

相關問題