您的位置:首页 > 移动开发 > IOS开发

iOS中 沙盒(sandbox)与归档(NSKeyedArchiver)

2015-09-17 19:39 417 查看
iOS的沙盒(sandbox)机制:是一种安全机制,iOS应用程序只能对自己创建的应用程序进行读取文件,这个独立、封闭、安全的空间,就是我们说的沙盒。它里面一般存放着你的程序需要的文件,数据持久化的一些文件(Plist、sqlite....)音视频、图片以及其他资源文件

每一个应用程序只有一个沙盒
沙盒里面有三个文件夹
1、Documents 目录下的文件 会被同步到另一台设备 可以放 媒体资源

2、Library 可以把缓存的内容放到 Library/Caches

3、tmp 创建临时文件的目录 当我们的设备重启时,文件会被自动清除

我们可以获得根目录home
获得根目录的方式 打印home路径
NSString *homePath = NSHomeDirectory();
NSLog(@"%@",homePath);

获得Documents 的方式
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *Documents = [paths firstObject];

Library 目录
NSArray *paths2 = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *Library = [paths2 firstObject];

Library/Caches
NSArray *paths3 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *Caches = [paths3 firstObject];
获取Temp目录

NSString *tmp = NSTemporaryDirectory();

二、归档 NSKeyedArchiver
解归档NSKeyedUnarchiver
归档又叫序列化(coding)
归档之后的文件 会被加密
可以归档的文件、数据:任何数据(直接归档一个类实例化的对象、数组、字典、字符串、文本、图片 .....)

归档的步骤
1、归档路径 需要归档的数据
2、归档、解归档

iOS开发中的对象归档:
对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化)使用的时候读取该文件的保存路径读取文件的内容(也称为接档,反序列化)
对象归档的文件是保密的磁盘上无法查看文件中的内容,而属性列表是明文的可以查看)
对象归档有两种方式:1、对foundat中对象进行归档 2、自定义对象归档

归档方式
NSData 二进制数据的类

归档步骤
1、归档文件路径 准备需要归档的数据
2、写一个NSMutableData 通过归档的类 让 Data 准备写入到文件
3、开始(归档)编码
4、结束(归档)编码 把Data 数据写入到文件
解归档
1、解归档文件路径
2、读取文件里面的Data数据
3、通过解归档对象 读取Data数据 准备解归档
4、解归档数据

三、要想归档自定义类的对象
1、遵守归档(NSCoding)协议
2、实现归档协议里面的方法
3、逐一对自定义类里面的类进行编码和解码 这时候这个对象就具备了 归档 解归档的功能
4、归档 解归档

归档
1、准备要归档文件的路径 要归档的数据
2、进行归档

这些都是比较基础的知识,我就不把代码一一写出来了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: