有效地访问数组中的数组

时间:2013-02-22 16:42:22

标签: iphone ios cocoa-touch design-patterns

我有一个名为Filter的数据类型,它具有NSMutableArray属性,该属性包含一堆FilterKey个对象(每个过滤器的密钥数量不同)。我有一堆Filter个对象存储在名为NSMutableArray的{​​{1}}中。

我有一个Filters,其中每一行都填充了UITableView个对象之一的数据。我的问题是,对于UITableView中的给定行,如何使用FilterKey数组来找到正确的Filters(考虑到我已经手动将过滤器和键放在一起)?

基本上,我知道我可以遍历FilterKey数组和每个Filters对象,遍历所有Filter,但我想知道是否有更好的方法这样做(即更好的数据结构,还是能让我更快地获得正确对象的东西?

对不起,如果您有任何疑问,请在评论中告诉我。

2 个答案:

答案 0 :(得分:2)

通常,您会为此使用节和行,其中每个节都是Filter,每行都是FilterKey。

听起来你只是想显示过滤器键,而没有过滤器的章节标题(如果我正确地阅读你的帖子)。如果你真的不想要标题,那很好,只需为tableView:heightForHeaderInSection:返回0,为nil返回tableView:viewForHeaderInSection:

所有这些都是为了方便而不是表现。它不太可能比通过过滤器并加上其键的计数快得多。这种操作非常快。但是,部分/行可以更好地映射您的数据,因此无论如何我都可能会使用它来保持代码更简单。

答案 1 :(得分:1)

您可以使用散列映射的NSMutableDictionary,从而实现更快,更轻松,可读的操作。

如果您更喜欢数组,则无需遍历搜索特定值,您可以使用NSPredicate过滤数组。