美文网首页
沙盒的详解:

沙盒的详解:

作者: subite0 | 来源:发表于2016-01-13 11:28 被阅读0次

•iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒

•iOS常用目录:

–Bundle           //该目录下的文件是用来存储应用程序包的,包中含有应用程序和素材资源

–Documents     //该目录下的文件通常用来持久性存储数据并备份,例如归档文件

–Library/Caches   //该目录下的文件通常用来持久性存储数据,没有对数据进行备份

–Library/Preference //该目录下的文件用来持久性存储系统的设备信息,并对数据进行备份。

–tmp//一个临时文件夹,用来存储临时文件,程序一旦停止运行,所存文件的内容就会消失。

应用程序包路径:资源库/Developer/CoreSimulator/Devices(设备plist文件)/data/Containers/Bundle/Application(应用程序包)

沙盒路径:资源库/Developer/CoreSimulator/Devices(设备plist文件)/data/Containers/Data/Application/(Document、Library、tmp)Library/(Caches缓存、Preferences用户偏好设置)

•应用程序包:(Bundle)包含了所有的资源文件和可执行文件

•Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录

•Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积较大、不需要备份的非重要数据

•Library/Preference:保存应用的所有偏好设置,iOS的设置应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录

•tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录

沙盒目录的获取:

1.获取home目录:

NSString *homePath = NSHomeDirectory();

2.获取Documents目录,有两种方式:

方式一:通过函数的形式获取(Domains:表示一个搜索域,就是手机的存储区域)

NSArray *directorys = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsPath = [directorys lastObject];

方式二:通过拼接字符串的形式获取(不建议采用字符串拼接的方式获取目录,因为新版本的操作系统可能会修改默认目录名称)

NSString *documentsPath2 = [homePath stringByAppendingPathComponent:@"Documents"];

3.获取caches缓存目录(当然也可以通过拼接字符串的形式获取,这里就不列出来了)

NSArray *caches = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString *cachesPath = [caches lastObject];

4.通过函数获取临时目录

NSString *tmp = NSTemporaryDirectory();

5.NSBundle对象:图片、xib、storyboard、plist文件都是放在应用程序包里的

NSBundle *bundle = [NSBundle mainBundle];

//获取包中的文件的路径

NSString *path= [bundle pathForResource:@"array" ofType:@"plist"];

//加载包里xib文件

NSArray *views = [bundle loadNibNamed:@"cell" owner:self options:nil];

提示:获取目录不是目的,获取目录为了在该目录对文件进行操作,例如创建文件并存储数据

6.创建文件

//创建文件管理对象

NSFileManager *fm = [NSFileManager defaultManager];

//创建文件

const char *pt = "how are you";

NSString *fileName = [documentsPath stringByAppendingPathComponent:@"1.txt"];

NSData *data = [NSData dataWithBytes:pt length:strlen(pt)];

//NSString *str = @"how are you";

//NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

if([fm createFileAtPath:fileName contents:data attributes:nil])

{

NSLog(@"文件创建成功");

}

7.读取文件

//直接读

NSError *error = nil;

NSStringEncoding enc = 4/*NSUTF8StringEncoding*/;

NSString *str2 = [NSString stringWithContentsOfFile:fileName usedEncoding:&enc error:&error];

if(!error)

{

NSLog(@"str2:%@",str2);

}

else

{

NSLog(@"读取失败,%@",error);

}

相关文章

  • 沙盒的详解:

    •iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒 •iOS常用目录...

  • 沙盒效应和权重详解

    沙盒效应和权重详解 沙盒效应 新站在刚上线的一段时间内很难在搜索引擎上有一个好排名,甚至没有排名,这个现象称为沙盒...

  • IOS沙盒详解

    沙盒的目录如图 主要包括三大部分,Bundle,Data和iCloud。 而Data又包括三部分,Document...

  • IOS沙盒 - OC

    沙盒: 沙盒包含: 沙盒路径获取的方法:

  • Objective-C沙盒结构

    导读: 一、什么是沙盒机制二、沙盒的特点三、沙盒的结构组成四、获取沙盒目录路径 一、什么是沙盒机制 iOS中的沙盒...

  • OC - 沙盒

    导读: 一、什么是沙盒机制 二、沙盒的特点 三、沙盒的结构组成 四、获取沙盒目录路径 一、什么是沙盒机制 iOS中...

  • iOS 数据持久化知识汇总(1)—————存储路径

    一、沙盒和沙盒存储路径 1、沙盒是什么 iOS 每个iOS应用都有自己的应用沙盒,应用沙盒就是文件系统目录 。所...

  • 沙盒

    1、沙盒 程序只能访问自己的沙盒 NSHomeDirectory() 访问沙盒路径 沙盒下有三个目录:Docume...

  • iOS 系统相关复习

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

  • 7.1 沙盒和NSBundle详解

    沙盒 1、沙盒机制介绍 iOS中的沙盒机制是一种安全体系。每个iOS程序都有一个独立的文件系统(存储空间),而且只...

网友评论

      本文标题:沙盒的详解:

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