如果代码是为iPhone应用程序编写的,那么在使用NSDictionary
和NSObject
与NSStrings
作为属性之间哪种方法更好,在更快的性能和有效的内存管理方面?
E.g。如果应用程序处理解析XML文件,如下所示:
< ?xml version="1.0" encoding="utf-8" ?>
<Sync status="1" syncdate="03/04/2009 11:25:34 AM">
< FirstName>AAA< / FirstName>
< MiddleName>BBB< / MiddleName>
< LastName>ZZZ< / LastName>
< Age>28< /Age>
< Gender>Male< /Gender>
< /Sync>
然后,在存储解析的值时,哪种方法更有效率,如果XML文件大小可以更大?与将相同的已解析数据存储到{{1}中相比,将解析后的值存储在“NSDictionary
”中,与相应的“密钥”(例如Key=FirstName
Value=AAA
)相比有效且正确变量(即具有所有感兴趣节点的NSString
属性来存储相应的值。例如NSString
将存储NSString *firstName
子类的“AAA”)?
我正在寻找更快的性能以及内存效率。
答案 0 :(得分:1)
在更快的性能和有效的内存管理方面
答案可能归结为你的应用程序 - 你将拥有多少这些对象,你将如何访问它们 - 它们是不是只是阅读等等。
我会给你一些一般的建议 - 让它先工作,然后根据需要优化速度和尺寸。在写入之前不要优化它。
答案 1 :(得分:1)
就性能而言,没有比实际执行测试更好的了。人们已经对NSArray
感到惊讶,{{3}}似乎比预期更复杂,只是为了性能优化。
换句话说,如果在XML文件的未来版本中添加新属性,我会说NSDictionary
比自定义NSObject
更灵活。在couterpart中,我还会说具有明确命名属性的自定义NSObject
比NSDictionary
更易读,因此更易于维护。
答案 2 :(得分:0)
不是真正的答案:
您还可以使用带有键值编码的NSArray
,但我不了解与NSObject
/ NSDictionary
相比的效果。
但我很确定使用NSObject
将是最快的,因为根本没有开销。