2

对于我应该使用两者中的哪一个,我处于两难境地。我将通过一个restful API(返回json)检索一组数据,我不确定在我的UI视图表上显示之前我应该​​如何存储它们。

例如。

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

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

我应该怎么做?

顺便说一句:我在 UI 视图表上显示数据,当点击时会将用户重定向到另一个页面,如果他们决定返回,则必须显示前一个视图而不重新加载(使用 UinavigationController)

谢谢!

编辑:

另外,只是为了让您了解我正在尝试做的事情。我正在尝试按照本教程将我得到的数据拆分为节标题。在本教程中,它使用 NSDictionary。

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

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

4

4 回答 4

5

在 NSArray - 集合中的每个项目都有一个整数索引,因此项目有一个明确的顺序。当您从 NSARRY 检索/替换/删除存储对象时,您需要指定该存储对象的相应对象索引。

NSDictionary - 源自一个叫做 entry 的词。每个条目由一个表示键的对象和另一个表示键值的对象组成。在字典中,键是唯一的。也就是说,单个字典中没有两个键是相等的(由 isEqual 确定:)。当您从字典中检索对象时,您需要为objectForKey指定键值 每当您解析 plist 然后 NSDictionary将是理想的。您可以在此处参考苹果的文档以获取有关 NSDictionary.Happy 编码的更多解释 :)

于 2013-01-24T05:52:56.930 回答
3

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

于 2013-01-24T04:03:23.033 回答
1

通常,如果您需要以索引方式访问数据(例如您需要访问表中的行),那么您应该使用数组,因为您可以使用以下方式访问任何特定索引indexOfObject:

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

于 2013-01-24T04:02:26.127 回答
1

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

为了搜索一些值,您需要迭代数组,在字典中通过键检索它。

如果您希望集合按照某种排序顺序或到达顺序,那么 Array 是适合您的类型。

当您最终获得两个相同的键时,字典就会缺失。

而且我感觉很好将数组用于 tableViews,因为我可以直接将行与索引相关联。

于 2013-01-24T05:23:32.420 回答