Modifier un NSMutableArray d'objets
Rocou
Membre
Bonjour,
J'ai un NSMutableArray qui contient des objets NSDictionnay:
Comment faire pour changer "Toto" en "Titi"?
J'ai un NSMutableArray qui contient des objets NSDictionnay:
{<br /> Client = Toto;<br /> Adresse = "Rue des pinsons";<br /> },<br /> {<br /> Client = "Malabar gonfle";<br /> Adresse = "Rue des mesanges";<br /> }
Comment faire pour changer "Toto" en "Titi"?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Donc 2 solutions :
1) soit tu récupères l'objet de ton NSMutableArray (objet qui est donc un NSDictionary), en fait une "mutableCopy", pour le modifier, puis remplaces ton objet (ton NSDictionary) qui est dans ton NSMutableArray par la mutableCopy modifiée (et tu releases enfin la mutableCopy créée pour l'occasion une fois rajoutée)... En gros le principe c'est de sortir ton objet (NSDictionary) de ton NSMutableArray, ça tu peux puisque ton array est mutable donc tu peux faire "removeObjectAtIndex:" dessus... puis créer un autre NSDictionary identique à celui que tu viens d'enlever à part pour la clé "Client" que tu fais pointer sur Tata et plus Toto... et tu réinsères le nouvel objet dans ton NSMutableArray...
Tout ça parce que ton NSDictionary n'est pas mutable, donc que tu ne peux pas le modifier, donc que tu es obligé de créer un nouveau NSDictionary identique sauf pour la ou les clés que tu veux modifier... galère un peu quand même !
2) Ou alors, 100x plus simple, tu remplaces tes NSDictionary par des NSMutableDictionary. Quand tu récupères l'objetAtIndex i de ton NSMutableArray, ça te retourne non plus un NSDictionary mais un NSMutableDictionary... que tu peux donc modifier avec "setValue: forKey:", et basta, c'est tout ! Ca modifie le NSMutableDictionary partout où il a été référencé... y compris dans ton NSMutableArray
Dans mon cas, je ne peux pas remplacer les NSDictionary par des NSMutableDictionary puisqu'il s'agit d'une déclaration issu d'un frameWork (PGSQLKit pour ne pas le nommer).
J'ai opté pour ta première idée. C'est vrai que c'est un peu lourdingue mais ça fonctionne très bien!
Le but était en fait de réinterprèter des caractères accentués.
Encore merci!