按日期分组NSDictionary

时间:2014-03-09 21:35:39

标签: ios objective-c nsarray nsdictionary

我有一个NSDictionary,我想按日期分组创建一个对象数组

主要NSDictionary的例子:

({

        date = "2014-04-27";
        group = "yellow.png";
        length = 180;

    },
        {

        date = "2014-04-28";
        group = "blue.png";
        length = 180;

    },
        {

        date = "2014-04-27";
        group = "blue.png";
        length = 120;

    })

我想将类似的内容分组为:

2014-04-27 = (
{ 

            date = "2014-04-27";
            group = "yellow.png";
            length = 180;

        },
            {

            date = "2014-04-27";
            group = "blue.png";
            length = 180;

        })


  2014-04-28 = ( {

            date = "2014-04-28";
            group = "blue.png";
            length = 120;

        })

有人可以帮助我吗?我尝试了很多FOR,但我无法得到它

1 个答案:

答案 0 :(得分:5)

看起来好像您的原始数据结构是一个字典数组。你的问题是不正确的?我看到每个单独的字典,但它们没有键入顶级数据结构中的任何内容。

假设是这种情况(你有一个名为originalArray的数组

NSMutableDictionary *dictionaryByDate = [NSMutableDictionary new];

for(NSDictionary *dictionary in originalArray)
{
    NSString *dateString = dictionary[@"date"];
    NSMutableArray *arrayWithSameDate = dictionaryByDate[dateString];
    if(! arrayWithSameDate)
    {
        arrayWithSameDate = [NSMutableArray new];
        dictionaryByDate[dateString] = arrayWithSameDate;
    }
    [arrayWithSameDate addObject: dictionary];
}

到此结束时,dictionaryByDate将成为数组的字典(键入日期)(给定数组中的所有对象都将是具有相同日期的字典)。