OC - 沙盒

导读:

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

一、什么是沙盒机制

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

你可能感兴趣的:(OC - 沙盒)