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,然后读取。
我正在使用 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,然后读取。