黑马程序员——Objective-C程序设计(第4版)学习笔记之19-归档——黑马 IOS 技术博客

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

在Objective-C语言中,归档是一个过程,即用某种格式来保存一个或多个对象,以便以后还原这些对象。(这个玩意类似于Java中的序列化和反序列化

在Mac OS X上的应用程序使用XML属性列表(或plists)存储诸如默认参数选择、应用程序设置和配置信息这样的数据。

使用PropertyList Editor程序来创建属性列表。

使用NSPropertyListSerialization类在文件中写入或读取属性列表可以在不同的平台之间移植。

归档方法一般包括:

1)使用XML属性列表进行归档。(如果可能,尽量在程序中使用XML属性列表)

2)使用NSKeyedArchiver归档。

3)使用NSData创建自定义档案。


要归档当前没有列出的对象,必须告知系统如何归档(或编码)你的对象,以及如何解归档(或解码)它们。这是按照<NSCoding>协议,在类定义中添加encodeWithCoder:方法和initWithCoder:方法实现的。


每次归档程序想要根据指定的类编码对象时,都将调用encodeWithCoder:方法,该方法告知归档程序如何进行归档。类似地,每次从指定的类解码对象时,都会调用initWIthCoder:方法。


一般而言,编码方法应该指定如何归档想要保存的对象中的每个实例变量。


从档案文件中恢复数据很简单:所做的工作只需和归档文件相反。

首先,需要像以前那样分配一个数据空间。

其次,把档案文件中的数据读入该数据空间。

然后,需要创建一个NSKeydUnarchiver对象,并告知它从指定的空间解码数据。

必须调用解码方法来提取和解码归档的对象,做完之后,向NSKeyedUnarchiver对象发送一条finishDecoding消息。


使用归档程序复制对象:

可以使用Foundation的归档功能来创建对象的深复制。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值