我有一个数组,我从xml文件中加载了大量数据。我在桌面视图上显示这个,然后当你点击说出一个作者时,它会显示所有的书。
我的NSMutableArray每分钟都有一个条目,包括标题,作者等等。因此,在作者表中,它显示作者姓名的次数与书籍的次数相同。我想对数组数据进行分组,因此表只显示每个作者一次,但作者包含他的书籍数组。看似简单,但我找不到数组的组方法。
答案 0 :(得分:1)
您可以遍历books数组并为作者创建一个新数组。对于每本书,使用containsObject检查该作者是否已在authors数组中。但是,当用户选择作者时,您还必须担心只能从books数组中显示作者的书籍。
最好将xml文件首先加载到NSMutableDictionary中,而不是键是作者名称,每个键的对象是该作者书籍的NSMutableArray。
然后作者tableview将使用字典的键作为数据源(使用allKeys返回的数组,然后可以根据需要进行排序或使用keysSortedByValueUsingSelector)并且books tableview将使用所选键的book数组。
如果数据太大而无法一次性加载到内存中,那么您将不得不使用其他选项,例如SQLite。