Восстановить 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++;
}