Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSMutable dictionary,我是在每次使用它时进行初始化,还是保存并加载到文件中?_Ios_Objective C_Nsmutabledictionary_Nskeyedarchiver - Fatal编程技术网

Ios NSMutable dictionary,我是在每次使用它时进行初始化,还是保存并加载到文件中?

Ios NSMutable dictionary,我是在每次使用它时进行初始化,还是保存并加载到文件中?,ios,objective-c,nsmutabledictionary,nskeyedarchiver,Ios,Objective C,Nsmutabledictionary,Nskeyedarchiver,我有一个使用NSMutableDictionary的类。此词典包含自定义类“appStrings”的40-60个对象。现在每次我使用这个类时,我只是初始化字典,调用我的initDictionary方法,这会添加所有的对象和键。相反,一次初始化NSDictionary并使用NSKeyedArchiver将其保存到文件中更好/更快,还是每次只调用init方法?就编写代码而言,这没有什么区别,我必须在某个时候初始化字典,即使我保存了它,并且不再初始化。但是在性能方面呢 编辑:对象的示例 appMess

我有一个使用
NSMutableDictionary
的类。此词典包含自定义类“appStrings”的40-60个对象。现在每次我使用这个类时,我只是初始化字典,调用我的initDictionary方法,这会添加所有的对象和键。相反,一次初始化
NSDictionary
并使用
NSKeyedArchiver
将其保存到文件中更好/更快,还是每次只调用init方法?就编写代码而言,这没有什么区别,我必须在某个时候初始化字典,即使我保存了它,并且不再初始化。但是在性能方面呢

编辑:对象的示例

appMessage *a= [[miaoMEMessage alloc] initWithCode:@"a" replies: [NSArray arrayWithObjects:@"j", @"k", nil] english:@"Hi!" andChineseTrad:@"嗨!"];

一般来说,创建对象总是比从磁盘加载要快。
在您的示例中,在代码中创建字典比从磁盘加载更快(它必须创建相同的对象从磁盘加载)。

字典在初始化后存储在属性中。但是,对于我正在使用的一些视图控制器,对象仅在需要时创建。如果没有任何繁重的代码来创建字典内容,则在代码中创建它会更快,然后从磁盘加载它,但是我的猜测是,如果字典内容是轻量级的,那么你不会注意到应用程序中的任何差异。什么是重代码?我已经用我正在使用的对象的示例编辑了我的问题。仅包含3个NSString和一个NSArray的对象。字典将有大约40-60个这样的函数。这需要很长的计算时间,比如在长数组中循环。根据这个例子,在代码中创建它会更快,处理的代码也更少!好吧,那我就不存档了。谢谢你的回答