iOS沙盒机制

沙盒:每一个iOS应用程序都会为自己创建一个文件系统目录(文件夹), 这个独立,封闭, 安全的空间,就叫做沙盒.

iOS的沙盒机制(SandBox)

1, 沙盒是一种安全体系.

2, 他规定了应用程序只能在为该应用程序创建的文件夹(沙盒)内访问文件,不可以访问其他沙盒内的内容(iOS8 已经部分开放访问).

3, 所有的非代码文件都保存在这个地方,比如图片,声音, 属性列表(plist),sqlite数据库和文本文件等.

特点:每个应用程序的活动范围都限定在自己的沙盒里.不能随意跨越自己的沙盒去访问别的应用程序的沙盒.应用程序向外请求或者接受数据都需要经过全县认真.

获取沙盒路径的方法:

NSString *path = NSHomeDirectory();

沙盒文件夹下有三个系统生成的文件夹Documents, Library, tmp

Documents:存放创建保存的数据,iTunes 会自动的备份该目录.

Library:(1)Caches存放缓存文件

            (2)Preferences:存放偏好设置,(注意我们直接使用NSUserDefaults 操作该文件夹即可)

tmp: 存储临时文件,比如:下载的zip压缩包,解压后直接删除

NSUserDefaults 直接操作Preferences 文件夹

// 一, 获取Documents 文件夹路径

    //1, 查找的文件路径

    //2, NSSearchPathDomainMask domainMask:在哪个域中查找,参数

    //3, 是否显示详细路径

    NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

    //二, 获取tmp 目录

    NSString *tmpPath = NSTemporaryDirectory();

 

    //三, 获取Library 目录

    NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];

    //四, 获取Library/Caches 目录

    NSString *libCachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];

    //五, 获取Library/Preferences 目录

    //注意:通常情况下, Preferences 由系统维护,我们只需要通过NSUserDefaults 来操作即可

原文地址:https://www.cnblogs.com/dreamDeveloper/p/6057557.html