八十六、基础框架(四十四)归档-用 NSKeyedArchiver这类物件 归档

本文介绍如何使用NSKeyedArchiver在MacOS X 10.2及以上版本中实现对象序列化,并提供了示例代码,演示如何将字典对象写入文件以及从文件中读取对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有  一种更加灵活的方法  可以使  你  将  任何类型的物件  存储  在物件当中,不仅仅  是  字符串、数组  和  辞典。这种方法  就是  利用  NSKeyedArchiver这类物件  创建  有关键字的归档。

自从10.2版后  Mac OS X  开始支持  有关键字的归档。在10.2版之前  人们  利用  NSArchiver这类物件  创建  有顺序的归档。有顺序的归档  要求  什么顺序  写入  就要  什么顺序  读出。

有关键字的归档  就是  归档中的每个条目  都有  一个名称。当你  将  一个物件  归档时,你  就给  它  一个名字  或者  叫  关键字。当你  要将  物件  从归档中  读取出来时,你  就透过  关键字  将  其  读取出来。透过这样的方式  物件  可以用  任何顺序  写入、读出。而且  如果  某类物件的构成  发生  改变,比如  每个这类物件  增加了  或者  减少了  变量,程序  也会考虑在内的。

iPhone  并不支持  NSArchiver这类物件。所以  在iPhone上  必须使用  NSKeyedArchiver这类物件  进行归档。要使用  NSKeyedArchiver这类文件,需要  在程序中  导入  <Foundation/NSKeyedArchiver.h>这个文件。

下面这个程序  示范了  如何将  glossary这个辞典物件  写入  文件。

在这个程序当中  我  向NSKeyedArchiver这类物件  发送了  archiveRootObject:toFile:这条消息,从而  将  物件glossary  写入  文件glossary.archive。

同时  我们  可以向  NSKeyedUnarchiver这类物件  发送  unarchiveObjectWithFile:这条消息  将  文件中的物件  读取出来,就像  下面这样:

 

 

运行  这个程序后,可以得到  这样的结果:

从第二个程序的运行结果  可以看出  第一个程序  成功地  将  物件glossary  写入了  文件glossary.archive。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值