美文网首页环境集成iOS 开发 牛叉的demo
runtime在归档解档中的运用

runtime在归档解档中的运用

作者: 逆流丶而上 | 来源:发表于2016-08-17 15:53 被阅读42次

在进行数据持久化的时候,需要进行序列化,转化成二进制流,同样,得到二进制流后,需要进行反序列化,还原数据。

1、归档

写文件时,如果是系统的一些类,可以直接调用writeToFile方法来进行写文件,或者使用NSKeyedArchive类来进行操作。这里主要说自定义的model类的数据持久化。

自定义的model归档的时候,需要遵循NSCoding协议。如果没有遵循NSCoding协议,在进行归档时会崩溃。NSCoding协议必须实现encoderWithCoder和initWithCoder,前者是归档调用的方法,后者是解档调用的方法。在model类中实现归档方法,如下图:

NSCoding的归档协议

使用runtime获取model类的所有属性,添加到NSCoder中,不用再一个一个属性的去赋值。

使用NSKeyedArchive进行数据持久化如下:

归档

2、解档

model进行解档,必须遵守NSCoding的解档协议,如下图:

NSCoding的解档协议

读取的时候,使用NSKeydUnarchiver把二进制流转化为model。如下图:

解档

首先从沙盒中读取,然后用NSKeyedUnarchiver进行转换。

相关文章

  • runtime在归档解档中的运用

    在进行数据持久化的时候,需要进行序列化,转化成二进制流,同样,得到二进制流后,需要进行反序列化,还原数据。 1、归...

  • Runtime实例运用-归档解档

    解档归档是存储方法之一,我们先来回忆一下都有哪些存储方法。 一.回忆存储方法: XML归档解档 NSUserDef...

  • runtime使用 自定义数据类型的编码解码

    通过runtime 遍历自定义model的所有属性实现归档解档操作。 要实现我们自定义的model能够自动解档归档...

  • runtime 进行归档和解档

    数据本地持久化时, 一般会将模型进行归档, 从本地获取数据时, 需要解档下面使用runtime的方式进行归档解档,...

  • runtime 解档归档

  • 归档解档--runtime

    不说废话,直接上代码。首先创建一个Person类。Person.h import

  • iOS - runtime-04实现自动解归档

    通过 runtime 进行归档、解档很节省很多工作,我先贴一段常规的解归档的代码。 通过这种方式进行解归档很麻烦,...

  • runtime自动归档

    前言 善用runtime,可以解决自动归档解档。想想以前归档是手动写的,确实太麻烦了。现在有了runtime,我们...

  • runtime自动归档/解档

    前言 善用runtime,可以解决自动归档解档。想想以前归档是手动写的,确实太麻烦了。现在有了runtime,我们...

  • objc/runtime之——归档反归档

    以上原始手动解档归档代码下载地址如下 runtime实现归档解档代码下载地址如下可以直接拉入项目使用 为什么我们要...

网友评论

    本文标题:runtime在归档解档中的运用

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