Objective c 为什么要归档?它如何提高性能?

Objective c 为什么要归档?它如何提高性能?,objective-c,ios,Objective C,Ios,我已经看到了一些使用NSCoder归档应用程序中的内容的示例 @interface MyApplicationData : NSObject <NSCoding, NSCopying> { NSMutableArray* items; NSMutableArray* categories; } @接口MyApplicationData:NSObject{ NSMutableArray*项; NSMutableArray*类别; } 请看这条线 为什么这会提高应用程

我已经看到了一些使用NSCoder归档应用程序中的内容的示例

@interface MyApplicationData : NSObject <NSCoding, NSCopying> {
    NSMutableArray* items;
    NSMutableArray* categories;
}
@接口MyApplicationData:NSObject{
NSMutableArray*项;
NSMutableArray*类别;
}
请看这条线

为什么这会提高应用程序的性能?这不是在应用程序中做更多的事情吗?有人能告诉我为什么以及何时要使用存档吗

编辑: 引用一本书中的话,iOS 5编程推动了存储缓存的限制下方法:“缓存或保存数据可以通过将其存储为数据模型的存档(使用NSKeyedArchiver)或使用更高级别的数据库(如原始SQLite)或使用对象序列化框架(如核心数据)来完成…”“…NSKeyedArchiver通过实现NSCoding协议来实现。”

我认为NSCoding或NSCoder可以用于缓存,它将提高性能。所以,将其用于缓存不是一种好的做法吗


提前感谢。

NSCoding
与性能无关,它是一种序列化对象或对象图的技术,因此您可以将其保存到持久存储或通过网络发送。

NSCoding
与性能无关,它是一种序列化对象或对象图的技术,因此您可以将其保存到永久性存储或通过网络发送。

为什么存档:

我正在从事一个需要记住用户累计动作的项目。这些动作是在屏幕上移动大量自定义对象时遇到的。自定义对象的属性包括当前位置、颜色、邻居等。因此,这些对象存储在一个数组中。因此,NSCoding用于序列化和归档数组。n下次我需要回忆用户的上一个状态时,我只是从存档文件中读取。如果没有此功能,我想我需要创建某种类型的数据库,其中包含表和字段,以单独存储这些属性数据,并在需要重新创建用户的当前状态时执行相反的操作,如我的示例所示。

WhyA archive:

我正在从事一个需要记住用户累计动作的项目。这些动作是在屏幕上移动大量自定义对象时遇到的。自定义对象的属性包括当前位置、颜色、邻居等。因此,这些对象存储在一个数组中。因此,NSCoding用于序列化和归档数组。n下次我需要回忆用户的上一个状态时,我只是从存档文件中读取。如果没有这个功能,我想我需要创建某种类型的数据库,其中包含表和字段,以单独存储这些属性数据,并在需要重新创建用户的当前状态时执行相反的操作,如我的示例所示

为什么这会提高应用程序的性能

嗯,您需要一些上下文--序列化可能“提高性能”,也可能不“提高性能”。它可以比其他序列化表示方式提高性能。这可能会有所不同,也可能不重要

这不是在应用程序中做更多的事情吗

好的,如果您有一个用xml/plist表示的复杂结构,而不是一个序列化对象,那么不——知道如何编码/解码自身的对象可能比xml或json或其他中间表示(出于多种原因)的性能要好得多。它还可以更易于管理,并且更容易地表示复杂结构(与中间序列化表示相比)

有人能告诉我为什么以及何时要使用存档吗

通常,当您要将对象或对象图的状态保存到磁盘,或要传输到另一台计算机时

假设您有文档数据,并且希望在重新打开文档时恢复该文档——您的程序必须创建一个表示形式,以便稍后正确地重建对象或对象图的状态

为什么这会提高应用程序的性能

嗯,您需要一些上下文--序列化可能“提高性能”,也可能不“提高性能”。它可以比其他序列化表示方式提高性能。这可能会有所不同,也可能不重要

这不是在应用程序中做更多的事情吗

好的,如果您有一个用xml/plist表示的复杂结构,而不是一个序列化对象,那么不——知道如何编码/解码自身的对象可能比xml或json或其他中间表示(出于多种原因)的性能要好得多。它还可以更易于管理,并且更容易地表示复杂结构(与中间序列化表示相比)

有人能告诉我为什么以及何时要使用存档吗

通常,当您要将对象或对象图的状态保存到磁盘,或要传输到另一台计算机时


假设您有文档数据,并且希望在重新打开文档时恢复该文档——您的程序必须创建一个表示法,以便在以后正确地重建对象或对象图的状态。

使用
NSCoding
将以某种方式“提高性能”的概念在哪里“来自?从一本书中,缓存或保存数据可以通过将其存储为数据模型的存档(使用NSKeyedArchiver)来完成。使用
NSCoding
将以某种方式“提高性能”的概念从何而来?从一本书中,缓存或保存数据可以通过将其存储为数据模型的存档来完成(使用NSKeyedArchiver)这是安全功能吗?
NSCoding
中的“编码”指的是“编码”,与“加密”不同。它与安全无关。这也是安全功能吗?
NSCoding
中的“编码”指的是“编码”,与“加密”不同。这与安全性无关。因此,在存档属性后,即使退出/终止程序,您仍将是一名