/ / NSDictionary setValue: - objectif-c, débogage, observation clé-valeur, nsmutabledictionary, codage clé-valeur

NSDictionary setValue: - objectif-c, débogage, observation de la valeur clé, nsmutabledictionary, codage clé-valeur

OK, cela me rend fou. Dites-moi que je ne perds pas la tête!

Je déclare:

NSMutableDictionary* generalSettingsDict;

je suis mon .h

Je init:

generalSettingsDict = [[NSMutableDictionary alloc] initWithCapacity:5];

dans une vueAfficher

Je mets:

[generalSettingsDict setValue:[NSNumber numberWithBool:control.on]
forkey:[NSNumber numberWithInt:control.tag]];

dans une méthode:

-(void)settingChanged:(UISwitch*)control forEvent:(UIEvent *)event

Et je reçois "NSMutableDictionary peut ne pas répondre à setValue: forkey:" et l'application se bloque lorsqu'elle est exécutée.

S'il vous plaît aider :(

Réponses:

25 pour la réponse № 1

UNE) forkey: devrait être forKey:. La capitalisation est importante.

B) setValue:forKey: est une méthode KVC. Cela peut fonctionner comme prévu ici, mais la méthode appropriée à utiliser pour NSMutableDictionary est setObject:forKey:


4 pour la réponse № 2

Tu veux setObject:forKey:. setValue:forKey: fait partie du protocole de codage clé-valeur. NSMutableDictionary fournit setObject:forKey:.