Cocoa 开发中的数据管理与内存优化
1. NSCoder 与 NSData 的使用
在应用开发中,一个典型的应用可能会在其模型中使用数十个甚至数百个数据收集对象。为每个对象创建一个单独的文件是低效的。幸运的是,Cocoa 提供了一个“集合的集合”类 NSCoder,它可以将一组集合创建为一个单一的数据缓冲区,将其保存为一个文件,并在重新加载时检索原始集合数据。
NSData 是 Cocoa 中最简单的数据收集对象,它是任意二进制数据块的包装器。NSData 不关心数据的含义或组织方式,它不支持键、索引、集合、字典或其他访问方法,只是将数据视为连续的字节缓冲区。NSMutableData 则增加了字节级别的编辑功能,你可以更改缓冲区的长度、追加更多字节或来自另一个 NSData 对象的数据,以及替换缓冲区中的字节范围。
NSData 有时用于应用程序中的通用存储,更常见的是用作文件或数据传输缓冲区。在后续内容中,NSData 将与 NSCoder 配对,为应用程序数据创建文件缓冲区。
2. 归档与编码介绍
大多数应用程序将文档和数据保存到一个文件中。Cocoa 的 NSCoder 类将对象的属性值合并到一个单一的 NSData 对象中,然后可以将该数据保存到磁盘上的一个文件中。NSCoder 支持一种解码方法,该方法可以反转这个过程,将合并的数据解包并复制回对象的属性。
NSCoder 实现有两个组成部分:
- 首先,每个支持归档的类必须实现两个方法:
- encodeWithCoder: :定义类如何将其属性转换为可以添加到文件缓冲区的二进制块。
- <
Cocoa数据与内存管理优化
超级会员免费看
订阅专栏 解锁全文
1

被折叠的 条评论
为什么被折叠?



