30、文件加载与保存及键值编码技术解析

文件加载与保存及键值编码技术解析

1. 文件加载与保存

在处理文件加载和保存时,有两种主要技术:属性列表(plists)和对象编码。

属性列表数据类型是一类知道如何自行加载和保存的类。如果拥有的对象集合都是属性列表类型,就可以使用便捷函数将它们保存到磁盘并读取回来。

对于非属性列表类型的自定义对象,可以采用NSCoding协议并实现编码和解码方法。通过这种方式,能将自定义对象转换为NSData,进而保存到磁盘,后续再读取并重构对象。

编码和解码的操作示例如下:

freezeDried = [NSKeyedArchiver archivedDataWithRootObject: thing1];
thing1 = [NSKeyedUnarchiver unarchiveObjectWithData: freezeDried];
NSLog (@"reconstituted multithing: %@", thing1);

若编码的数据中存在循环引用,比如 thing1 在其自身的 subThingies 数组中,Cocoa的归档器和解档器能够巧妙处理,确保对象循环可以被保存和恢复。不过,测试时不要使用 NSLog 打印 thing1 ,因为 NSLog 无法检测对象循环,会导致无限递归。

2. 键值编码(KVC)

键值编码(KVC)是一种间接改变对象状态的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值