JSON Data identique mais le programme échoue?
-
29-10-2019 - |
Question
J'ai une application iOS qui obtient du JSON à partir d'un serveur (sous la forme de NSDATA). J'utilise l'analyseur du framework SBJSON pour le convertir en un objet NSDictionary, comme ainsi:
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *content = [parser objectWithData:data];
Je procède ensuite à lire des objets de «Contenu» etc.
Maintenant, ce code exact a fonctionné parfaitement en utilisant une ancienne version du framework SBJSON. Le programme était bien. Ensuite, j'ai implémenté une nouvelle version du framework SBJSON et tout à coup, mon programme se bloque lorsque j'essaie de faire les mêmes choses avec le «contenu» (pour être plus précis, j'obtiens une erreur EXC_BAD_ACCESS).
Ma première pensée a été que le nouveau SBJSonParser a produit un fichier légèrement différent, et j'ai donc enregistré à la fois le nouveau et l'ancien «contenu» pour envoyer des fichiers et exécuter la commande 'Diff' à partir de la ligne de commande. Ils sont exactement les mêmes.
Donc, le seul changement que j'ai apporté était d'utiliser le nouveau SBJSONParser. Qu'est-ce que je rate?
La solution
La solution consistait à changer légèrement mon code:
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *content = [[parser objectWithData:data] retain];