2017-04-19 36 views
0

沒有爲IOS文件目錄檢索常見的模式:我可以有把握地認爲Documents目錄始終存在於iOS的

let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) 
let documentsDirectory = paths[0] 

但是,如果paths陣列是上面的代碼空將與崩潰「索引越界」的錯誤。

假設Documents目錄始終可用並且paths將始終至少包含上面的代碼中的一個條目是否安全?

我想避免偏執的編程和代碼灑在不必要的測試Documents目錄的存在。

+0

有[此擴展名(http://stackoverflow.com/a/30593673/3397217),處理陣列的目錄:你可以*安全*在某個索引處獲取數組的內容。您仍然需要檢查它是否爲零:/ – LinusGeffarth

+1

Documents文件夾始終爲您創建。請參閱[文件系統編程指南](https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html)來決定是否應該使用Documents vs其他東西(例如Caches或者是其他東西)。 – Rob

回答

1

您可以使用替代API與選項來創建

let documentsDirectory = try! FileManager.default.url(for: .documentDirectory, 
                 in: .userDomainMask, 
              appropriateFor: nil, 
                create: true) 
+0

那麼,該代碼可以拋出,這使得處理更糟糕... –

+2

是的,但在這種情況下'嘗試!'是安全的 – vadian

+0

是啊,沒想到那個...看起來更好... –

相關問題