iOS 為每個應(yīng)用提供了一個獨立的文件空間,該空間稱為沙盒。
應(yīng)用與系統(tǒng)交互時候大都數(shù)情況都限制在自己房間睛琳,系統(tǒng)提供了某些公共API接口课竣,如相冊梁厉、聯(lián)系人等更舞。在應(yīng)用安裝時候掠剑,安裝器會為應(yīng)用創(chuàng)建一系列容器竟痰。如下圖
SandBox
MyApp.app
應(yīng)用程序包尚胞,這里面存放應(yīng)用程序的源文件
//訪問方式
let bundlepath = NSBundle.mainBundle().bundlePath
// 比如該目錄下有個 666.wav 文件 硬霍,獲取該文件目錄
let path = NSBundle.mainBundle().pathForResource("666", ofType: "wav")
// - /Users/.../Applications/.../SwiftSandBox.app/666.wav
Documents
存儲用戶產(chǎn)生的內(nèi)容
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
Library
程序的默認設(shè)置或其它狀態(tài)信息
let paths = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)
Library/Application Support
let paths = NSSearchPathForDirectoriesInDomains(.ApplicationSupportDirectory, .UserDomainMask, true)
Library/Caches
iTunes不備份該目錄,用于存放緩存文件笼裳,文件不會在應(yīng)用退出刪除
let paths = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)
tmp
保存應(yīng)用運行時所需要的臨時數(shù)據(jù)
let tempPath = NSTemporaryDirectory()