在NSMutablearray中对数据进行分组

时间:2010-04-19 13:50:53

标签: arrays iphone nsmutablearray grouping

我有一个数组,我从xml文件中加载了大量数据。我在桌面视图上显示这个,然后当你点击说出一个作者时,它会显示所有的书。

我的NSMutableArray每分钟都有一个条目,包括标题,作者等等。因此,在作者表中,它显示作者姓名的次数与书籍的次数相同。我想对数组数据进行分组,因此表只显示每个作者一次,但作者包含他的书籍数组。看似简单,但我找不到数组的组方法。

1 个答案:

答案 0 :(得分:1)

您可以遍历books数组并为作者创建一个新数组。对于每本书,使用containsObject检查该作者是否已在authors数组中。但是,当用户选择作者时,您还必须担心只能从books数组中显示作者的书籍。

最好将xml文件首先加载到NSMutableDictionary中,而不是键是作者名称,每个键的对象是该作者书籍的NSMutableArray。

然后作者tableview将使用字典的键作为数据源(使用allKeys返回的数组,然后可以根据需要进行排序或使用keysSortedByValueUsingSelector)并且books tableview将使用所选键的book数组。

如果数据太大而无法一次性加载到内存中,那么您将不得不使用其他选项,例如SQLite。