一、沙盒的意义

  出于安全的考虑,iOS系统的沙盒机制规定每个应用只能访问当前沙盒目录下面的文件。但是对于一些用户级别的数据,考虑到很多软件都需要使用其中的数据,用户可以通过对当前的软件授权,让当前的应用可以访问这类数据。但是这类数据只存在于苹果原生开发的应用中,比如相册、通讯录等等。

  沙盒中的根目录下的一级目录是固定的,这些目录有Bundle Container(MyApp.app)、DataContainer(Documents、Libray、Temp)、iCloud Container。作出规定的意义在于方便沟通,比如开发者将文件放置在不同的位置,iOS系统会根据之前约定好的规则作出恰当的操作。

二、目录路径的意义规范以及使用场景

1、MyApp.app

(1)说明

存放着应用程序本身的数据,包括资源文件和可执行文件等。整个目录只可读,不可更改。应用程序启动后,软件会根据需要从该目录中懒加载代码和资源到内存中。为了防止篡改里面的内容,应用在安装的时候会将该目录进行签名。在非越狱的情况下,该目录中的内容是无法更改的。在越狱设备上如果更改了目录内容,对应的签名就会被改变,这种情况下应用程序将无法启动。

(2)iTunes同步

该文件不会被iTunes同步。

(3)路径获取

[[NSBundle mainBundle] bundlePath]

2、Documents

(1)说明

开发者可以将应用程序的数据文件保存在这个目录下。不过建议这里只保存不可再生的数据,可再生的数据应该存放在Library/Cache目录下。

(2)iTunes同步

该目录下的文件会被iTunes同步。

(3)路径获取

[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:]

3、Documents/Inbox

(1)说明

这个目录是苹果后面在加上的。比如,QQ接受到一个word文件,通过调用WPS软件打开这个文件。这个过程和前提是这样的,首先WPS软件会像iOS系统注册能够打开的文件格式(比如word、pdf、excel等),然后QQ中打开文件时需要设置一个类似于“用其他软件开发”的按钮,调用系统的外部软件打开功能,这个功能界面中会出现WPS软件,当用户选择WPS后,iOS系统会将这个word文件复制一份到WPS的Documents/Inbox目录下,在让WPS打开。该目录只读不可修改。

(2)iTunes同步

该目录下的文件会被iTunes同步。

(3)路径获取

4、Library

(1)说明

苹果工程师建议在该目录下存放一些偏好设置或者一些状态信息。

(2)iTunes同步

除这个Library/Caches之外,Library下的其他文件会被iTunes同步。

(3)路径获取

[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject]

5、Library/Caches

(1)说明

这个目录下主要存放一些用户在使用软件过程中的缓存数据,前面说的Documents目录用来保存一些不可再生的数据,那么现在这个目录就用来保存那么可以再生的文件,比如网络请求的数据,但是为了用户使用软件的更加顺畅,开发者可以考虑将一些网络数据缓存起来。既然是缓存数据,开发者需要设置好缓存的一系列安排,比如清除缓存、缓存有效期的设置等等。

(2)iTunes同步

该目录下的数据不会被iTunes同步。

(3)路径获取

[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:]

6、Library/Preferences

(1)说明

程序的偏好设置文件。比如使用的NSUserDefaults就是将数据保存在该目录下的一个plist文件中。

(2)iTunes同步

该目录下的数据会被iTunes同步。

(3)路径获取

[NSUserDefaults standardUserDefaults]

7、Temp

(1)说明

各种临时的文件,保存应用再次启动时就可以不需要的文件数据。并且开发者不需要这些文件的时候应该要主动将其删除掉,因为该目录下的文件随时可能被系统清理掉,比如当系统磁盘存储空间不足的时候,系统会自动清除这个目录下的文件。

(2)iTunes同步

该目录不会被iTunes同步。

(3)路径获取

NSTemporaryDirectory()

三、其他

1、沙盒主目录路径

NSHomeDirectory()

iOS沙盒目录简介、沙盒路径获取的更多相关文章

  1. iOS开发——数据持久化Swift篇&文件目录路径获取(Home目录,文档目录,缓存目录等)

    文件目录路径获取(Home目录,文档目录,缓存目录等)   iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒.下面介绍常用的程序文件夹目录:   1,Home ...

  2. css盒模型简介

    如何了解盒模型 盒模型简介:盒模型是css布局的基石,它规定了网页元素如何显示以及元素间相互关系.css定义所有的元素都可以拥有像盒子一样的外形和平面空间. 盒模型的组成:内容区.补白/填充.边框.边 ...

  3. iOS开发——多线程篇——快速生成沙盒目录的路径,多图片下载的原理、SDWebImage框架的简单介绍

    一.快速生成沙盒目录的路径 沙盒目录的各个文件夹功能 - Documents - 需要保存由"应用程序本身"产生的文件或者数据,例如:游戏进度.涂鸦软件的绘图 - 目录中的文件会被 ...

  4. iOS--浅谈iOS沙盒目录

    原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文 ...

  5. iOS沙盒目录结构解析

    iOS沙盒目录结构解析 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713     出于安全考虑,iOS系统的沙盒机制规定每个应 ...

  6. iOS沙盒目录

    出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中 ...

  7. iOS 沙盒目录结构介绍

    iOS系统中,每个应用都有自己的沙盒,且应用只能访问其对应的沙盒目录下面的文件.当然,在用户授权的情况下,应用也可以访问其他目录下面的文件.比如,用户授权情况下,应用可以访问相册.通讯录.在开发中,经 ...

  8. iOS 沙盒目录结构及正确使用

    前言:处于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如在用户授权情况下访问通讯录,相册等),这个规则展示了iOS系统的封闭性.在开发中常常需要数据存储的功 ...

  9. iOS沙盒目录文件操作

    简介 沙盒(NSHomeDirectory())中总共有四个文件夹,documents.tmp.app.Library; 手动保存的文件在documents文件里; Nsuserdefaults保存的 ...

随机推荐

  1. 什么是DO / DTO / BO / VO /AO ?

    转载:https://blog.csdn.net/ouzhuangzhuang/article/details/86644476 POJO 是 DO / DTO / BO / VO 的统称. DO(D ...

  2. 安卓之文本视图TextView及跑马灯效果

    一.基本属性和设置方法 二.跑马灯用到的属性与方法说明 三.省略方式的取值说明 四.跑马灯效果案例代码   (1)布局xml文件 <?xml version="1.0" en ...

  3. C语言:将字符串中的前导*号全部移到字符串的尾部。

    //规定输入的字符串中只包含字母和*号,fun函数:将字符串中的前导*号全部移到字符串的尾部. #include <stdio.h> void fun( char *a ) { ]; ch ...

  4. CSS - 引入方法

    1. 外部样式表 <head> <link rel="stylesheet" type="text/css" href="style ...

  5. 2_2 3n+1问题

    猜想:对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半.经过若干次这样的变换,一定会使n变为1.例如:3→10→5→16→8→4→2→1. 输入n,输出变换的次数.n< ...

  6. Docker 安装 Kibana

    使用和 elasticsearch 相同版本镜像 7.4.1 (不一样可能会出现问题) 1.下载Kibana镜像  # 下载Kibana镜像 docker pull kibana: # 查看镜像 do ...

  7. IO课堂测试

    一,用户需求 英语的26 个字母的频率在一本小说中是如何分布的?某类型文章中常出现的单词是什么?某作家最常用的词汇是什么?<哈利波特与魔法石> 中最常用的短语是什么,等等. (1)要求1: ...

  8. pytorch资料

    torchvision是独立于pytorch的关于图像操作的一些方便工具库. torchvision的详细介绍在:https://pypi.org/project/torchvision/ torch ...

  9. dp-捡金币

    来源:牛客网 题目描述   最近,奶牛们热衷于把金币包在面粉里,然后把它们烤成馅饼.第i块馅饼中含有Ni(1<=Ni<=25)块金币,并且,这个数字被醒目地标记在馅饼表面. 奶牛们把所有烤 ...

  10. 对list集合的内容分组

    /** * 把list集合里的内容按照len大小分组 * @param list * @param len * @return */ private static List<List<St ...