使用NSDictionaries的NSMutableArray划分UITableView

时间:2014-03-18 22:08:48

标签: ios iphone objective-c nsmutablearray nsdictionary

我有一个NSMictionary的NSMutableArray,在记录时看起来像这样

<__NSArrayM 0x165bcfc0>(
{
    SeqN = 122;
    Code = 024;
    Number = 1;
},
{
    SeqN = 132;
    Code = 030;
    Number = 1;
},
{
    SeqN = 124;
    Code = 002;
    Number = 2;
},
{
    SeqN = 114;
    Code = 035;
    Number = 3;
},
{
    SeqN = 144;
    Code = 009;
    Number = 3;
},
{
    SeqN = 444;
    Code = 022;
    Number = 3;
}
)

我想知道使用Number as部分创建UITableView的最佳方法,因此UITableView看起来像这样

Number 1
SeqN 122, Code 024
SeqN 132, Code 030
Number 2
SeqN 124, Code 002
Number 3
SeqN 114, Code 035
SeqN 144, Code 009
SeqN 444, Code 022

我迷失了,我不确定是否需要将NSDictionaries的NSMutableArray溢出到数组数组中?或者是否有一个更容易的解决方案可以使用我不知道的东西来实现?

我设法创建了一个我用于sectionCount返回的唯一数字数组。我不知道如何返回每个部分的行数或拆分数组,以便显示正确的数据。

更新

这是我从NSDictionaries的NSMutableArray创建NSArrays的NSDictionary的方法

 NSMutableDictionary *sortedDictionaryArraysForTableView = [NSMutableDictionary dictionary];

    for (NSDictionary *dict in xmlMArray) {
        NSString *currNumber = [dict objectForKey:@"Number"];
        if(![[sortedDictionaryArraysForTableView allKeys] containsObject:currNumber])
            sortedDictionaryArraysForTableView[currNumber] = [NSMutableArray array];
        [sortedDictionaryArraysForTableView[currNumber] addObject:dict];
    }

2 个答案:

答案 0 :(得分:1)

将您的词典数组转换为词典数组的字典,其中键是Number,值是包含Number的所有词典的数组。

字典的count现在是部分的数量。您可以使用allKeys获取所有数字(并对其进行排序,以便获取部分键和相关的项目数组)。

答案 1 :(得分:0)

重新整理您的数据,使其如下所示:

@[
     @{
        @"number":@(1),
        @"items":@[
            @{ @"seqn": @"114", @"code": @"035", @"number:@(1) },
....
     @},
@]

基本上你需要一个字典数组,每个字典包含一个字典数组(每个字典代表你当前的项目)