标签:
今天有讲到数据持久化的问题,就有涉及到数据存储位置的问题。iOS对于数据安全问题做的很严谨,使用的沙盒机制(Sandbox),相对于安卓系统而言,一下子真的是难以消化。
在iOS8之前的沙盒文件夹中存在四个文件夹
Document 存储用户数据,需要备份的信息(数据持久化操作的文件夹)
Library
Library/Caches 存储缓存文件,程序专用的支持文件
Library/Preferences 存储应用程序的偏好设置文件
.app 程序包(iOS8时,app不存储在沙盒中,有单独的文件夹存储所有的程序包)
tmp 存储临时文件。比如:下载的zip包,解压后的再删除 ------- 当内存满了,手机会发出警告,警告的同时会优先清除tmp中的文件,所以数据的持久化不适合在TMP文件中,优先放在document(是需要手动操作的)中
沙盒机制总结就是:
1.每个应用程序位于文件系统的严格限制部分,iOS会为应用程序在硬盘对应目录下创建文件夹----沙盒文件夹
2.每个应用程序只能在为该程序创建的文件系统中读取文件,程序运行时产生的数据都保存在自己的沙盒文件夹中,程序与程序之间的数据是不能互通的 -------- 可以通过越狱后安装插件iFile(文件管理器),不仅可以看到手机的整个目录结构,还可以可以修改文件夹访问权限
3.每个应用程序在iOS系统内都放在了统一的文件夹目录下
4.沙盒的本质就是一个文件夹,其路径是固定的,但是文件夹名字是使用UUID(全球唯一标识符)随机分配的
沙盒路径是看不到,当电脑编程时,是在Finder资源库中的(默认是隐藏的,点击左上角前往标签,点击alt键就可以显示),在手机中可以是用iTools(无需越狱)链接电脑使用就可以看到文件
*iFile是一款十分强大的iPhone端文件管理软件,可以管理文件、修改文件(夹)权限、通过wifi与电脑传输资料等等
修改文件(夹)权限
用户、组和全局分别代表三个数字,每一项点进去会有三个分项:读取、写入和执行(请忽略“最高”),它们分别占的权重为4/2/1
就是说,读取、写入和执行都选的时候,权限就是4+2+1=7 只选读取和写入的时候就是4+2=6,依此类推,很容易理解。
例如:一个文件的权限就是755。
标签:
原文地址:http://www.cnblogs.com/wangguimin/p/4506946.html