2012-01-11 2 views
0

Je suis en train de définir une clé pour USERNAME par rapport à ce code:Valeur de réglage pour NSMutableDictionary en multi niveaux

{ 
"CustomerAccount":{ 
"UserName":"String content" 
}; 

Je suis en train de définir le nom d'utilisateur ici, personne ne sait comment puis-je mettre un nom dans le dictionnaire avec des niveaux?

Mon code est aussi:

[mutabledictionary setObject:self.uitextfield.text forKey:UserName]; 

mais cela définit le nom d'utilisateur ci-dessous pour CustomerAccount pas CustomerAccount d'initié.

Toute aide ici serait appréciée.

Merci.

Répondre

2

Vous pouvez simplement ajouter un sous-dictionnaire, comme ceci:

NSDictionary *userAccount = [NSDictionary dictionaryWithObject:@"String Content" forKey:@"UserName"]; 
NSMutableArray *accounts = [NSMutableArray arrayWithObject:userAccount]; 

// do something with accounts 
NSLog(@"%@", accounts); 
0

il suffit de créer créer une matrice de CustomerAccount et l'utilisation dans NSDictionary. Utilisez

[NSDictionary dictionaryWithObjects:objects forKeys:keys]; 
3

Si le dictionnaire mutable à deux niveaux existe déjà (ce ne est pas clair de votre question), vous devez envoyer votre setObject: forKey message au dictionnaire de second niveau, comme suit:

[[mutabledictionary objectForKey:@"CustomerAccount"] setObject:self.uitextfield.text forKey:UserName]; 
+0

C'est exactement ce que je cherchais .. Merci – kforkarim

+0

Terminer l'application en raison d'une exception non interceptée 'NSInternalInconsistencyException', raison: '- [__ NSCFDictionary setObject: forKey:]: méthode de mutation envoyée à un objet immuable – Alex