## 查找沙盒路径
- 显示沙盒路径
`po NSHomeDirectory()`
- 显示 Bundle 路径
`po [[NSBundle mainBundle] bundlePath]`
- po = print object 是 lldb 的指令,是非常重要的调试指令
不用在开发时,写大量的 NSLog
## 沙盒的主要路径
- Documents
- 需要保存由**应用程序本身**产生的文件或者数据,例如:游戏进度、涂鸦软件的绘图
- 目录中的文件会被自动保存在 iCloud
- 注意:不要保存从网络上下载的文件,否则会无法上架!
- Caches
- 保存临时文件,**后续需要使用**,例如:缓存图片,离线数据(地图数据)
- 系统不会清理 cache 目录中的文件
- 就要求程序开发时,**必须提供 cache 目录的清理解决方案**
- tmp
- 保存临时文件,**后续不需要使用**
- tmp 目录中的文件,系统会自动清理
- 重新启动手机,tmp 目录会被清空
- 系统磁盘空间不足时,系统也会自动清理
- Preferences
- 用户偏好,使用 `NSUserDefault` 直接读写!
- 如果要想数据及时写入磁盘,还需要调用一个同步方法 `synchronize`
## 路径对比
bundle 路径
/Users/apple/Library/Developer/CoreSimulator/Devices/73ADBB27-9F61-4D2D-9C1B-D3340507F70A/data/Containers/Bundle/Application/4EAD4389-FEAB-46B0-B053-E4405CF75230/
沙盒路径
/Users/apple/Library/Developer/CoreSimulator/Devices/73ADBB27-9F61-4D2D-9C1B-D3340507F70A/data/Containers/Data/Application/AD1CEEEC-B8D7-415E-A254-32F31BE738DF
UDID - 随即声成的一组唯一的字符串组合
1. 73ADBB27-9F61-4D2D-9C1B-D3340507F70A 表示模拟器,及时模拟器重新设置,该数字也不会改变
2. 4EAD4389-FEAB-46B0-B053-E4405CF75230 对应的是 "bundle"
3. AD1CEEEC-B8D7-415E-A254-32F31BE738DF 对应的是 "沙盒" 会变化
注意:以上的特点是在 iOS 8.0 以上才有的,会更安全!
在 iOS 7.0 以及之前,Bunlde 的路径和沙盒的路径在一个目录下!