2010-03-18 11 views
3

Je suis en train d'ajouter quelques paires de clés supplémentaires/valeur à un NSMutableDictionary, en utilisant:NSMutableDictionary ajoute des guillemets aux clés et aux valeurs - pourquoi?

Tag *tag1 = [results1 objectAtIndex:0]; 
[resultsDict setObject:[tag1 retrieveTextUpToDepth:1] forKey:@"image_url"]; 

Tag *tag2 = [results2 objectAtIndex:0]; 
[resultsDict setValue:[tag2 retrieveTextUpToDepth:1] forKey:@"majority"]; 

Cela ajoute les paires k/v sans problème, sauf quand je viens de les récupérer, certaines des valeurs ont été enveloppé avec des guillemets doubles:

po extendedDataDictionary: 

    "image_url" = "/images/mpsL/11727.jpeg"; 
    majority = 3460; 

Les deux clés et valeurs sont NSStrings, sans guillemets - donc je suis perplexe quant à où ils comparaissent à partir.

Y a-t-il un moyen de prévenir cela? Ou est-ce que je vais devoir vivre avec et essayer de supprimer les citations une fois que j'ai récupéré la valeur?

Merci ...

+0

Qu'est-ce que vous obtenez si vous les imprimer dans votre code (printf ou NSLog) et non par gdb – Mark

+0

Ce sont les même via NSLog: 2010-03-18 21: 08: 24.312 Conflit [49224: 40b] extendedDataDictionary = { "image_url" = "/images/mpsL/13735.jpeg"; en majorité = 2484; swing = "4,6"; "vulnerability_cohort" = 643; "vulnérabilité_rank" = 488; Toutes les valeurs proviennent du même flux XML, et il n'y a certainement pas de guillemets dans le champ image_url ... – TimD

Répondre

9

Les citations ne sont pas vraiment partie du contenu; la méthode -description (appelée par po, IIRC) entoure simplement les objets entre guillemets pour l'affichage qui contiennent des caractères non alphanumériques.

+3

En outre, la sortie de la méthode '-description' ne devrait pas être utilisée à d'autres fins que le débogage. – bbum

+0

@bbum a appris cela à la dure. Pendant des heures j'ai été convaincu que NSDictionaries ne pouvait pas imprimer des caractères Unicode ... Il a fini par être que la description les supprime D: – Alexander

+0

@Wevah: Ses valeurs fines avec des caractères spéciaux ont été placées entre guillemets mais qu'en est-il si le champ mot de passe doit avoir un caractère spécial, puis l'appel API échoue à cause de ces guillemets indésirables. Comment empêcher la méthode -description d'envelopper les guillemets doubles dans des champs particuliers? – iShwar

1

ajoutant, vous pouvez utiliser les touches ou les valeurs pour autant négliger la citation et il devrait être bien ..