我有一个NSArray,其中每个对象都有一个groupId和一个name。每个对象都是唯一的,但有许多具有相同groupId的对象。是否有一种方法可以将数组分解并重新构建,使得名称被分组到具有相应groupId的单个对象中?以下是数组的当前样子:
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];
[newDict setValue:[arrObj valueForKey:@"name"] forKey:nameStr];
}
else {
[newDict setValue:arrObj forKey:@"object"];
}
idNum++;
}
numberWithInt
方法接受一个int
类型的参数并返回NSNumber
对象。在这里,你提供了一个id
类型的参数,并将其赋值给了NSString
变量。 - Sebastian