Donc j'essaye d'enregistrer des tableaux dans un NSDictionary à la volée. Laissez-moi vous montrer le code et expliquer ce qui se passe.Question de fonctionnalité NSDictionary
for (int x= 0; x <[appDelegate.people count]; x++) {
Person *aPerson = [[Person alloc] init];
aPerson = [appDelegate.people objectAtIndex:x];
if ([appDelegate.groupedBusiness objectForKey:aPerson.business_name] == nil) {
NSMutableArray *newBusiness = [[NSMutableArray alloc] init];
//if the business does not exist in the dict, add the person to the business and add it to dict.
[newBusiness addObject:aPerson];
[appDelegate.groupedBusiness setObject:newBusiness forKey:aPerson.business_name];
[newBusiness release];
newBusiness = nil;
//NSLog(@"%@", appDelegate.groupedBusiness);
} else {
NSMutableArray *existingBusiness= [appDelegate.groupedBusiness objectForKey:aPerson.business_name];
[existingBusiness addObject:aPerson];
//THIS IS THE LINE I AM NOT SURE ABOUT!!!
[appDelegate.groupedBusiness setObject:existingBusiness forKey:aPerson.business_name];
[existingBusiness release];
existingBusiness = nil;
//NSLog(@"%@", appDelegate.groupedBusiness);
}
}
Bon, le appDelegate a un tableau de « peuple » qui a un tas d'attributs sur une personne. J'essaie de mettre en place un dictionnaire pour les trier par leur nom d'entreprise. Je fais cela en créant un tableau et en l'enregistrant dans le dictionnaire avec le nom de l'entreprise comme clé. Chaque itération de la boucle que je vérifie pour voir si la clé existe, si c'est le cas, retirez le tableau existant, ajoutez la personne que vous vérifiez et réenregistrez-la dans le dictionnaire. Cependant, cela ne semble pas se produire. Y a-t-il un comportement exotique dans la classe NSDictionary qui empêcherait cela? J'ai versé sur la page Web de la classe et ne trouve rien. Désolé si c'est une question noobie, j'essaie toujours de comprendre les classes objectives-c. Merci!
ne pas faire avec votre question, mais Personne * aPerson = [[Person alloc] init]; aPerson = [appDelegate.people objectAtIndex: x]; fuira, vous allouant un objet Personne et l'assignant à aPerson et ayant ensuite cette variable point à autre chose, maintenant vous avez un objet Personne alloué qui n'est pas référencé et a un nombre de retenue de 1 – Daniel
Merci, noté, je vais réparer cette. Au départ, ce n'était pas comme ça, mais je l'ai changé pour une raison ou une autre. Je ne me souviens pas pourquoi. – gabaum10