J'ai du mal à ajouter une structure de données à un tableau pour créer un tableau de dictionnaires à partir d'une boucle. Je savais juste que addObject dans NSMutableArray ne faisait qu'ajouter un pointeur dessus. Je voudrais savoir comment atteindre mon objectif.
Voici mon code:
NSMutableDictionary *woRows = [[NSMutableDictionary alloc] init];
NSMutableArray *workOrders = [[NSMutableArray alloc] init];
while ([theScanner isAtEnd] == NO)
{
if ([theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol1] &&
[theScanner scanString:@"{US}" intoString:NULL] &&
[theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol2] &&
[theScanner scanString:@"{US}" intoString:NULL] &&
[theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol3]&&
[theScanner scanString:@"{RS}" intoString:NULL])
{
[woRows setValue:tempCol1 forKey:@"hours"];
[woRows setValue:tempCol2 forKey:@"colMain"];
[woRows setValue:tempCol3 forKey:@"colAddtl"];
[workOrders addObject:woRows];
[woRows release];
}
}
[tmpString release];
[jobs addObject:workOrders];
[workOrders release];
à partir du code ci-dessus, le tableau workOrders n'aura que des doublons des derniers objets ajoutés. Je suis resté ici pas en mesure de progresser pour afficher les données correctes.
Toute aide serait appréciée.
Merci
essayez de faire [workOrders addObject:[woRows copy]];
Je sais, c'est un peu tard et même pas ce que vous demandiez, mais je suppose que vous vouliez utiliser [woRows setObject:forKey:]
au lieu de [woRows setValue:forKey:]
.
déplacer votre code de création de dictionnaire dans la boucle (à l'intérieur si condition)
woRows = [[NSMutableDictionary alloc] init];
vous utilisez le même objet ...