zoukankan      html  css  js  c++  java
  • Archiver 浅析

    归档是一个过程,即用某种格式来保存一个或多个对象,以便以后还原这些对象。通常,这个过程包括将(多个)对象写入文件中,以便以后读取该对象。

    两种归档数据的方法:属性列表和带键值的编码。

    属性列表局限性很大,一般不适用。

    -)使用NSKeyedArchiver归档

    若要将各种内置类型的对象存储到文件中,不仅仅是NSString、NSArry,NSDictionary,NSSet、NSDate、NSNumber和NSData,还有他们之间的组合,利用NSKeyedArchiver归档是一种灵活的方法。这些内置数据类型都已经实现<NSCoding>协议。

    二)使用NSData创建自定义归档

    如果要归档自定义的数据类型,那就要在要在类定义中添加编码encodeWithCoder:方法和initWithCoder:解码方法,以实现<NSCoding >协议。编码方法应该指定如何归档想要保存的对象中的每个实例变量。对于基本的C数据类型,和对象类型都是有对应的编码解码方法。这个可以查,比如对象型decodeObject:forKey:来解码基本的Object-C类。

    如果要存储所有的对象,就可以用NSData通用数据流对象类。这也是最具有通用性的方法。

    使用的步骤:

    第一步:确保要归档的每个自定义类都实现了<NSCoding>协议,(内置类已经已经实现,不需要担心);

    第二步:设置数据区,并将其连接到一个NSKeyedArchiver对象

    NSData  *data=[NSMutableData  data]

    NSKeyedArchiver *archiver=[[NSkeyedArchiver alloc ] initForWritingMutableData:data];

    第三步:归档

     [arhiver ecodeObject:id forkey:@""];

        ........

    [archiver finishEncoding];

    第四步:将存档的数据区写入文件中。

    例如:

    [[NSUserDefaults standardUserDefaults] setObjet:data forKey:@""];

    反过来也是一样;取得文件中归档数据,解码就可以了。

  • 相关阅读:
    数据库知识点
    hibernate5--主键生成策略
    hibernate5学习知识点小结
    hibernate5小案例讲解
    hibernate5新手跳过的坑
    strut2_struts.xml文件配置知识点汇集
    在使用ElementUI的JSP项目中,集成富文本编辑器QuillEditor
    如何在JSP中使用VUE/elementUI
    Java定时任务--Timer和TimerTask
    SecureFX的破解问题
  • 原文地址:https://www.cnblogs.com/changeUniversal/p/4662540.html
Copyright © 2011-2022 走看看