J'ai rempli un tableau en utilisant.Comment mettre à jour NSMutableDictionary. Mon code ne fonctionne pas
arrSettings = [[NSMutableArray alloc] initWithContentsOfFile:[self settingsPath]];
Le fichier est un plist avec la racine sous forme de tableau, puis un dictionnaire avec trois trois clés définies comme nombre. J'ai également essayé de régler les clés à la chaîne.
J'affiche les valeurs dans le fichier plist sur une vue en utilisant.
diaper = [[arrSettings objectAtIndex:0] objectForKey:@"Diaper Expenses"];
oil = [[arrSettings objectAtIndex:0] objectForKey:@"Oil Used"];
tree = [[arrSettings objectAtIndex:0] objectForKey:@"Wood Used"];
Ce code fonctionne correctement, les valeurs du dictionnaire sont affectées aux variables et elles sont affichées. L'utilisateur peut apporter des modifications, puis appuyez sur un bouton de sauvegarde.
J'utilise ce code pour extraire la partie du dictionnaire du tableau afin que je puisse le mettre à jour. L'affectation à editDictionary fonctionne. J'ai vérifié les noms des clés, y compris le cas et c'est correct.
editDictionary = [[NSMutableDictionary alloc] init];
editDictionary = [arrSettings objectAtIndex:0];
NSNumber *myNumber = [NSNumber numberWithFloat:diaperAmount];
[editDictionary setValue:myNumber forKey:@"Diaper Expenses"];
myNumber = [NSNumber numberWithFloat:oilAmount];
[editDictionary setValue:myNumber forKey:@"Oil Used"];
myNumber = [NSNumber numberWithFloat:treeAmount];
[editDictionary setValue:myNumber forKey:@"Wood Used"];
Dans cet exemple, j'ai utilisé un nsnumber. Mais j'ai également essayé le champ xxxAmount dans le cadre de SetValue au lieu de créer un NSNumber. Aucune mise en œuvre ne fonctionne.
Plusieurs choses étranges se produisent. Parfois, les deux premières instructions setvalue fonctionnent, mais la dernière valeur set échoue avec un échec EXC_BAD_ACCESS. D'autres fois, le premier setValue échoue avec la même erreur. Je ne sais pas pourquoi les deux premiers fonctionnent parfois.
Je ne sais plus quoi faire. J'ai essayé plusieurs implentations et aucune d'entre elles ne fonctionne. En outre, dans le débogueur, comment puis-je afficher les éléments editDictionary. Je peux voir editDictionary, mais je ne sais pas comment afficher les éléments individuels.
urgent, s'il vous plaît formater votre code .. – miku