美文网首页
iOS--沙盒相关介绍

iOS--沙盒相关介绍

作者: GaryHuang | 来源:发表于2016-05-26 17:09 被阅读78次

一.什么是沙盒?
iOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。
每一个APP都有一个存储空间,就是沙盒,APP之间不能相互通,唯独可以通过URL Scheme通信.(关于URL Scheme通信:见http://www.superqq.com/blog/2015/07/14/xcode6-dot-4zhu-ce-url-schemebu-zou-xiang-jie/)。
二.如何查看沙盒?
打开模拟器沙盒的方法有:
1.前往文件夹打开
直接在Finder->前往->前往文件夹(或者点击桌面空白处command+shift+g),输入上面的内容即可。记住将XXXXX换成你的电脑用户名。

/Users/XXXXX/Library/Developer/CoreSimulator/

2.通过finder逐步查找


沙盒一.png
沙盒二.png
沙盒三.png

三.沙盒里边有什么?作用是什么?
1.Documents:用于存储用户数据,iTunes备份和恢复的时候会包括此目录,苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下。
2.Library:包含两个子目录:Caches 和 Preferences。Caches用来存放用户需要换成的文件。Preferences是APP的偏好设置,可以通过NSUserDefaults来读取和设置。


沙盒四.png
3.tmp:用于存放临时文件,这个可以放一些当APP退出后不再需要的文件。
四.通过代码获取沙盒路径
1.获取沙盒的Home目录
   //获取根目录
    NSString *homePath = NSHomeDirectory();
    NSLog(@"Home目录:%@",homePath);

2.获取沙盒的Documents目录

//获取Documents文件夹目录,第一个参数是说明获取Doucments文件夹目录,第二个参数说明是在当前应用沙盒中获取,所有应用沙盒目录组成一个数组结构的数据存放
    NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsPath = [docPath objectAtIndex:0];
    NSLog(@"Documents目录:%@",documentsPath);

3.获取沙盒的Cache目录

//获取Cache目录
    NSArray *cacPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *cachePath = [cacPath objectAtIndex:0];
    NSLog(@"Cache目录:%@",cachePath);

4.获取沙盒的Library目录

//获取Library目录
    NSArray *libsPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString *libPath = [libsPath objectAtIndex:0];
    NSLog(@"Library目录:%@",libPath);

5.获取沙盒的temp目录

//temp目录
    NSString *tempPath = NSTemporaryDirectory();
    NSLog(@"temp目录:%@",tempPath);

6.向沙盒中写入文件

//向沙盒中写入文件
    NSArray *docPathW = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsPathW = [docPathW objectAtIndex:0];
    //写入文件
    if (!documentsPathW) {
        NSLog(@"目录未找到");
        }else {
           NSString *filePaht = [documentsPath stringByAppendingPathComponent:@"test.txt"];
            NSArray *array = [NSArray arrayWithObjects:@"code",@"change", @"world", @"OK", @"", @"是的", nil];
    [array writeToFile:filePaht atomically:YES];
}

7.从沙河中读取文件

 //从沙盒中读取文件
    NSArray *docPathR = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsPathR = [docPathR objectAtIndex:0];
    NSString *readPath = [documentsPathR stringByAppendingPathComponent:@"test.txt"];
    NSArray *fileContent = [[NSArray alloc] initWithContentsOfFile:readPath];
    NSLog(@"文件内容:%@",fileContent);

8.对应的路径地址

2016-05-26 17:04:02.971 ChangePhoto[29818:3102851] Home目录:/Users/XXXXXX/Library/Developer/CoreSimulator/Devices/9ED18B2C-0AC6-4558-BDA0-39A7804715D8/data/Containers/Data/Application/53775754-1EA0-47F3-A765-11358C3A10AF
2016-05-26 17:04:02.971 ChangePhoto[29818:3102851] Documents目录:/Users/XXXXXX/Library/Developer/CoreSimulator/Devices/9ED18B2C-0AC6-4558-BDA0-39A7804715D8/data/Containers/Data/Application/53775754-1EA0-47F3-A765-11358C3A10AF/Documents
2016-05-26 17:04:02.971 ChangePhoto[29818:3102851] Cache目录:/Users/XXXXXX/Library/Developer/CoreSimulator/Devices/9ED18B2C-0AC6-4558-BDA0-39A7804715D8/data/Containers/Data/Application/53775754-1EA0-47F3-A765-11358C3A10AF/Library/Caches
2016-05-26 17:04:02.971 ChangePhoto[29818:3102851] Library目录:/Users/XXXXXX/Library/Developer/CoreSimulator/Devices/9ED18B2C-0AC6-4558-BDA0-39A7804715D8/data/Containers/Data/Application/53775754-1EA0-47F3-A765-11358C3A10AF/Library
2016-05-26 17:04:02.971 ChangePhoto[29818:3102851] temp目录:/Users/XXXXXX/Library/Developer/CoreSimulator/Devices/9ED18B2C-0AC6-4558-BDA0-39A7804715D8/data/Containers/Data/Application/53775754-1EA0-47F3-A765-11358C3A10AF/tmp/
2016-05-26 17:04:03.327 ChangePhoto[29818:3102851] 文件内容:(
    code,
    change,
    world,
    OK,
    "",
    "\U662f\U7684"
)

其中的XXXXXX为你的Mac用户名.
备注:不足之处还望指正!
参考:http://blog.csdn.net/totogo2010/article/details/7671144

相关文章

  • iOS--沙盒相关介绍

    一.什么是沙盒?iOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读...

  • iOS--沙盒

    认识沙盒 何为沙盒?沙盒装什么?沙盒:系统为iOS应用创建的非此应用不可读写的文件夹,每个iOS应用都有一个和它一...

  • iOS开发常用的宏定义

    宽高相关 打印相关 颜色相关 沙盒路径相关 设备相关 沙盒路径相关 缩写 其他

  • iOS 系统相关复习

    沙盒 iOS沙盒详细介绍iOS沙盒篇 沙盒机制介绍 iOS中的沙盒机制是一种安全体系。为了保证系统安全,iOS每个...

  • 沙盒相关

    一、工程要对沙盒以外的文件做修改,要在xcode总开相应的沙箱权限

  • iOS沙盒解析及操作

    介绍 概念:每个应用拥有自己的应用沙盒,所谓的应用沙盒就是文件系统目录。 沙盒文件目录 沙盒操作 获取应用根目录 ...

  • iOS常用宏定义

    尺寸相关 系统相关 颜色图片相关 字符串相关 沙盒路径相关 其他

  • iOS 沙盒介绍

    先简单介绍一下什么是沙盒:你可以简单理解成为一个目录,这个目录的改动不会对操作系统造成任何损失。(这里也有一点点介...

  • 沙盒文件介绍

    Documents 存放不会被删除的文件,会被itunes备份,不能放太大的文件.不然苹果审核会被拒掉 Cache...

  • 沙盒

    一、iOS沙盒机制介绍(1)概念:每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 ...

网友评论

      本文标题:iOS--沙盒相关介绍

      本文链接:https://www.haomeiwen.com/subject/dhlxdttx.html