Восстановить NSArray, сгруппировав объекты с соответствующими номерами идентификаторов?

У меня есть NSArray, и каждый объект в массиве имеет идентификатор группы и имя. Каждый объект уникален, но есть много с одинаковым groupId. Есть ли способ, которым я могу разорвать массив и перестроить его так, чтобы имена были сгруппированы в один объект с соответствующим groubId? Вот как выглядит массив в данный момент:

2013-03-12 20:50:05.572 appName[4102:702] the  array:  (
        {
        groupId = 1;
        name = "Dan";
    },
        {
        groupId = 1;
        name = "Matt";
    },
        {
        groupId = 2;
        name = "Steve";
    },
        {
        groupId = 2;
        name = "Mike";
    },
        {
        groupId = 3;
        name = "John";

    },
        {
        groupId = 4;
        name = "Kevin";
    }
)

Вот как бы я хотел, чтобы это выглядело так:

2013-03-12 20:50:05.572 appName[4102:702] the  array:  (
        {
        groupId = 1;
        name1 = "Dan";
        name2 = "Matt";
    },
        {
        groupId = 2;
        name1 = "Steve";
        name2 = "Mike";
    },
        {
        groupId = 3;
        name = "John";

    },
        {
        groupId = 4;
        name = "Kevin";
    }
)

РЕДАКТИРОВАТЬ: я пытался и потерпел неудачу со многими попытками, большинство из которых в соответствии с чем-то вроде этого (небрежный отдых, но чтобы дать идею):

int idNum = 0;
for (NSDictionary *arrObj in tempArr){
    NSString *check1 = [NSString stringWithFormat:@"%@",[arrObj valueForKey:@"groupId"]];
    NSString *check2 = [NSString stringWithFormat:@"%@",[[newDict valueForKey:@"groupId"]];
    if (check1 == check2){
        NSString *nameStr = [NSString stringWithFormat:@"name_%d",idNum];
        [newD,ict setValue:[arrObj valueForKey:@"name"] forKey:nameStr];
    }
    else {
        [newDict setValue:arrObj forKey:@"object"];
    }
    idNum++;
}  

Ответы на вопрос(5)

Ваш ответ на вопрос