iOS文档存储与归档技术全解析
1. 数据包装与文件包装器
在处理文档数据存储时, -contentsForType:error: 方法仅返回代表文档的原始数据,它并不关心数据的存储方式。因为文档可能存储在数据库记录或 XML 文件标签中,所以设计 “将图像存储在单个文件中” 是不可行的。
iOS 为此提供了文件包装器( NSFileWrapper ),它是存储在一个或多个文件中的数据的抽象。文件包装器有三种类型:常规、目录和链接,分别对应单个数据文件、文件系统目录和文件系统符号链接。
使用文件包装器并不困难:
- 常规文件包装器表示字节数组,类似于 NSData 。
- 目录文件包装器包含任意数量的其他文件包装器。
- 包装器有首选名称和键,键用于唯一标识包装器,首选名称是其希望被识别的名称。如果首选名称唯一,键和首选名称相同;若添加多个具有相同首选名称的包装器到目录包装器,目录包装器会为重复项生成唯一键。
-contentsForType:error: 方法会创建一个包含所有其他常规文件包装器的单个目录包装器。其中一个常规文件包装器包含数据模型对象的归档版本,每个有图片的项会将其图像存储为另一个文件包装器。
以下是相关代码示例:
#define kThingsPreferredName @"things.data"
#define kImagePreferredName @"image.png"
超级会员免费看
订阅专栏 解锁全文
1

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



