Objective-C沙盒结构

导读:

一、什么是沙盒机制
二、沙盒的特点
三、沙盒的结构组成
四、获取沙盒目录路径

timg.jpeg
一、什么是沙盒机制

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();

你可能感兴趣的:(Objective-C沙盒结构)