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

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、进行归档


这些都是比较基础的知识,我就不把代码一一写出来了





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值