iOS开发的沙盒机制详解

在iOS平台上,每个app都有一个存储空间,用以存储照片、声音文件、文本、属性列表等,我们称之为沙盒。在沙盒里,app可以自己读写文件,但仅限于自己的沙盒,不可访问其他app沙盒,不可进行相互间通信,除非通过URL Scheme。

iOS开发中,Documents、Library、temp都是沙盒的根目录结构,但是他们三者之间有什么区别呢?

Documents: 用于存储用户数据,iTunes备份和恢复的时候会包括此目录,所以,iOS开发者一般将程序中建立的或在程序中浏览到的文件数据保存在该目录下。

Library: 包含两个子目录,Caches 和 Preferences。Caches用来存放用户需要换成的文件。Preferences是APP的偏好设置,可以通过NSUserDefaults来读取和设置。

tmp: 用于存放临时文件,这个可以放一些当APP退出后不再需要的文件。

(更多数据存储资料请看《iOS数据存储》)

要了解沙盒,我们就需要打开沙盒了解详细情况,下面就是打开模拟器沙盒两种主要方法:

方法一:在文件夹中打开

/Users/maiziedu/Library/Application Support/iPhone Simulator/

直接在Finder->前往->前往文件夹,输入上面的内容即可。这里我用的是麦子学院的电脑进行的讲解,大家在使用中要记住将maiziedu换成你的电脑用户名。

方法二:通过Finder查找

模拟器上APP的沙盒是在用户目录下的资源库里面,但是资源库是往往都是隐藏文件夹。所以查看沙盒之前,先将隐藏文件夹显示出来。显示隐藏文件的命令:

defaults write com.apple.finder AppleShowAllFiles -bool true

同样,隐藏隐藏文件的命令:

defaults write com.apple.finder AppleShowAllFiles -bool false

将true改成false即可;

查找步骤如下图:

这就是iOS APP的沙盒原理、根目录结构及查看方法,还不清楚的亲,请收藏。

时间: 2024-10-02 06:48:44

iOS开发的沙盒机制详解的相关文章

iOS开发之沙盒机制(SandBox)

iOS APP可以在自己的沙盒里读写文件,但是,不可以访问其他APP的沙盒.每一个APP都是一个信息孤岛,相互是不可以进行通信的,唯独可以通过URL Scheme.沙盒里面的文件可以是照片.声音文件.文本.属性列表等. 沙盒机制简介 沙盒简述: 每一个APP都有一个存储空间,就是沙盒. APP之间不能相互通信. 沙盒根目录结构:Documents.Library.temp. 简述一下Documents.Library.temp的区别: Documents:用于存储用户数据,iTunes备份和恢复

iOS开发>学无止境 - 沙盒和文件操作(汇总)

关于沙盒和文件操作的文章写了几篇,在写的过程中加深了自己的记忆.今天来做一下汇总,算是对知识点的梳理. 文章梳理 1 iOS开发之沙盒机制(SandBox) 这是一篇关于沙盒的基础知识教程.简述沙盒的作用,对Documents.Library.tmp之间的区别做了介绍.通过两种方法打开沙盒,查看其中的内容. 2 iOS开发之获取沙盒路径 沙盒里的文件夹包括Documents.Library.tmp.文章介绍了如何获取Documents.Library.Caches.tmp的路径. 3 如何查看真

iOS开发之沙盒和文件操作(汇总)

关于沙盒和文件操作的文章写了几篇,在写的过程中加深了自己的记忆.今天来做一下汇总,算是对知识点的梳理. 文章梳理 1 iOS开发之沙盒机制(SandBox) 这是一篇关于沙盒的基础知识教程.简述沙盒的作用,对Documents.Library.tmp之间的区别做了介绍.通过两种方法打开沙盒,查看其中的内容. 2 iOS开发之获取沙盒路径 沙盒里的文件夹包括Documents.Library.tmp.文章介绍了如何获取Documents.Library.Caches.tmp的路径. 3 如何查看真

iOS: 沙盒的详解和目录的获取

沙盒的详解: •iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒 •iOS常用目录: –Bundle       //该目录下的文件是用来存储应用程序包的,包中含有应用程序和素材资源 –Documents //该目录下的文件通常用来持久性存储数据并备份,例如归档文件 –Library/Caches //该目录下的文件通常用来持久性存储数据,没有对数据进行备份 –Library/Preference //该目录下的文件用来持久性存储系统的设备信息,并对

IOS中的沙盒机制

IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属性列表和文本文件等. 1.每个应用程序都在自己的沙盒内 2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容 3.应用程序向外请求或接收数据都需要经过权限认证 查看模拟器的沙盒文件夹在Mac电脑上的存储位置,首先,这个文件夹是被隐藏的,所以要先将这些文件显示出来,打开命令行: 显示Mac隐藏文件的命令:defau

IOS开发学习笔记(1)-----UILabel 详解

1. [代码][C/C++]代码     //创建uilabelUILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 280, 80)];//设置背景色label1.backgroundColor = [UIColor grayColor];//设置taglabel1.tag = 91;//设置标签文本label1.text = @"Hello world!";//设置标签文本字体和字体大小label1.

IOS开发学习笔记(2)-----UIButton 详解

1. [代码][C/C++]代码     //这里创建一个圆角矩形的按钮    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];    //    能够定义的button类型有以下6种,//    typedef enum {//        UIButtonTypeCustom = 0,          自定义风格//        UIButtonTypeRoundedRect,        

IOS开发之---沙盒

IOS沙盒目录解析 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中几个主要的目录 每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档): 每个应用的沙盒目录都是相似的,主要包含图中所示的4个目录: 1.MyApp.app ①存放内容 该目录包含了应用程序本身的数据,包括资源文件和可执行文件等.程序启动以后,会根据需要从该目录中动态加载

IOS 初级数据持久化-沙盒机制

什么是数据持久化?数据的永久存储 为什么要坐数据持久化:存储在内存中的数据,程序关闭,内存释放,数据丢失,这种数据是临时的 数据初九化的本质:数据保存成文件,存储到程序的沙河中 1.沙盒机制 每个应用程序位于文件系统的严格限制部分 每个应用程序只能在为该程序创建的文件系统中读取文件 每个应用程序在IOS系统内都放在了统一的文件夹目录下 沙盒的本质就是一个文件夹,名字是随机分配的. 2.沙盒路径的位置 1.通过Finder查找程序沙盒相对的路径 通过代码查找程序沙盒相对路径 NSString *D