Ich habe ein NSArray und jedes Objekt im Array hat eine groupId und einen Namen. Jedes Objekt ist einzigartig, aber es gibt viele mit derselben groupId. Gibt es eine Möglichkeit, das Array auseinander zu reißen und neu aufzubauen, so dass die Namen in einem einzigen Objekt mit der entsprechenden groubId gruppiert werden? Hier ist, was zur Zeit das Array wie folgt aussieht:Erstellen Sie ein NSArray neu, indem Sie Objekte mit übereinstimmenden ID-Nummern gruppieren?
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";
}
)
Dies ist, was ich möchte aussehen:
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";
}
)
EDIT: Ich habe versucht, & mit vielen fehlgeschlagenen Versuchen, die meisten entlang der Linien so etwas wie diese (schlampig Erholung, aber eine Idee zu geben):
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++;
}
'NSString * ID = [NSNumber numberWithInt: [o objectForKey: @ "groupId"]];' 'numberWithInt 'nimmt ein' int' als Argument und gibt 'NSNumber' zurück. Sie stellen ein 'id' Argument zur Verfügung und weisen es' NSString' zu. – Sebastian