导读:
- 一、什么是沙盒机制
- 二、沙盒的特点
- 三、沙盒的结构组成
- 四、获取沙盒目录路径
一、什么是沙盒机制
-
iOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能从为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。
二、沙盒的特点
- 每个应用程序都在自己的沙盒内
- 不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容
- 应用程序向外请求或接收数据都需要经过权限认证
三、沙盒的结构组成
- 大致可以认为沙盒是由Bundle和Data容器组成,Bundle内部存储着目录,经常用到的mainBundle包含了图像、媒体资源、编译好的代码、nib 文件等,Data容器包含Documents、Library、tmp三个目录文件。
- Documents目录:程序中建立的或在程序中浏览到的文件数据保存在该目录下。
- Library/Caches目录:存放缓存文件,保存应用程序再次启动过程中需要的信息。
- Library/Preferences目录: 存储程序的默认设置或其它状态信息。
- tmp目录:存放临时文件,保存应用程序再次启动过程中不需要的信息。
- itues和iphone同步时,备份所有的Documents和library文件;iphone重启后会清空tmp目录。
四、获取沙盒目录路径
(一) Bundle容器
- 获取plist文件路径
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"plist"]; - 加载xib文件
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"viewController" owner:self options:nil] ;
(二) Data容器
- 获取Data容器根路径
NSString *homePath = NSHomeDirectory(); - 获取Documents路径
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) firstObject]; - 获取Caches路径
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES) firstObject]; - 获取tmp路径
NSString *tempPath = NSTemporaryDirectory();
网友评论