目标c时使用NSDictionary而不是NSArray

就我应该使用的两个人而言,我处于一个两难的境地。 我将通过一个restful API(返回json)来检索一组数据,我不知道应该如何在我的UI View Table上显示它们之前将它们存储起来。

例如。

{"Events":[{"Id":5,"Name":"Event 1 2013"},{"Id":6,"Name":"Event 2 2013"}]} 

我一直在阅读教程和一些会使用NSMutableArrays,而一些会使用NSMutableDictionary。

我应该怎么做呢?

顺便说一句:我显示的数据在用户界面视图表,将redirect用户到另一个页面,当他们决定返回将不得不显示前一个视图没有重新加载(使用UinavigationController)

谢谢!

编辑:

此外,只是给你一个想法,我想要做什么。 我试图按照这个教程分裂我得到部分头的数据。 在本教程中,它使用NSDictionary。

http://www.icodeblog.com/2010/12/10/implementing-uitableview-sections-from-an-nsarray-of-nsdictionary-objects/

如果我使用NSArray,会影响性能?

在NSArray中 – 集合中的每个项目都有一个整数索引,所以项目有一个明确的顺序。 在从NSARRY中检索/replace/删除存储对象时,需要指定该存储对象的相应对象索引。

NSDictionary – 从“入门”这个词衍生而来。 每个条目由代表键的一个对象和作为该键的值的第二个对象组成。 在字典中,密钥是唯一的。 也就是说,单个字典中没有两个键是相等的(由isEqual决定:)当你从字典中检索对象时,你需要指定objectForKey的键值每当你parsingplist,那么NSDictionary将是理想的。你可以在这里参考苹果的文档,以获得更多关于NSDictionary的解释。快乐编码:)

NSDictionaries上的查找时间比NSArrays上的查找时间更快。 这是主要优点之一。 这是Apple文档的链接 。

一般来说,如果你需要以索引的方式访问数据(比如你需要为表中的行),那么你应该使用一个数组,因为你可以使用indexOfObject:访问任何特定的索引indexOfObject:

现在,如果每行有很多信息,那么你应该有一个自定义对象或一个字典数组的数组。

字典总是比数组快。 字典映射到对象的键,就像一个哈希表。 这是一个关联数组。

为了search一些值,你需要迭代数组,在字典中,你可以通过键来检索它。

如果您希望集合处于某种sorting顺序或到达顺序,那么Array是适合您的types。

当你最终得到两个相同的键时,字典缺乏。

我觉得很好用的tableViews的数组,因为我可以直接关联行索引。