iOS 为每个应用提供了一个独立的文件空间,该空间称为沙盒。
应用与系统交互时候大都数情况都限制在自己房间,系统提供了某些公共API接口,如相册、联系人等。在应用安装时候,安装器会为应用创建一系列容器。如下图
MyApp.app
应用程序包,这里面存放应用程序的源文件
//访问方式
let bundlepath = NSBundle.mainBundle().bundlePath
// 比如该目录下有个 666.wav 文件 ,获取该文件目录
let path = NSBundle.mainBundle().pathForResource("666", ofType: "wav")
// - /Users/.../Applications/.../SwiftSandBox.app/666.wav
Documents
存储用户产生的内容
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
Library
程序的默认设置或其它状态信息
let paths = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)
Library/Application Support
let paths = NSSearchPathForDirectoriesInDomains(.ApplicationSupportDirectory, .UserDomainMask, true)
Library/Caches
iTunes不备份该目录,用于存放缓存文件,文件不会在应用退出删除
let paths = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)
tmp
保存应用运行时所需要的临时数据
let tempPath = NSTemporaryDirectory()