Mac 上的 NSCoding 是否等于 "Compress file"?

Is NSCoding equal to "Compress file" on Mac?

我正在使用 NSCoding 和 NSArchiver 来保存我的 iOS 应用程序数据。但是我想知道是否等同于使用zip/unzip软件?如果没有,它是如何工作的?

您可以阅读 docs 以大致了解 NSArchiver 的工作原理:

[...] provides a way to encode objects into an architecture-independent format that can be stored in a file

基本上,它将内存中的对象(以及它引用的所有其他对象,以及这些对象引用的对象......即"object graph")转换为可以存储在文件中的文件.

这与压缩不同。 NSArchiver 只是将您的对象编码为某种格式(二进制、XML 等)。压缩将使该编码的二进制文件更小。

请参阅此了解如何压缩文件。

实际上,它是一个 属性 列表。这就是为什么 NSKeyedArchiver 有一个 outputFormat 属性 可以是 XML 属性 列表或二进制 属性 列表。

请参阅有关 PropertyListSerialization 的文档 class 以了解有关其含义的更多信息。

您实际上可以将存档写入磁盘,将其打开为 XML,然后读取。