Existe-t-il un moyen simple de travailler avec des services Web pour iPhone dev?

StackOverflow https://stackoverflow.com/questions/400299

  •  03-07-2019
  •  | 
  •  

Question

Nous voulons prendre des données XML et les convertir en un objet NSDictionary, mais nous ne voulons pas effectuer une itération manuelle sur le XML. Y a-t-il un moyen facile de faire ceci? Comment faites-vous des services Web pour votre application iPhone?

Était-ce utile?

La solution

Si vous avez le contrôle sur la sortie XML, vous pouvez essayer de créer une liste de propriétés que vous pouvez ensuite lire dans un dictionnaire à l'aide de -dictionaryWithContentsOfURL: en utilisant la méthode -propertyList sur NSString). Vous pouvez en savoir plus sur les listes de propriétés ici: http: // developer .apple.com / documentation / Cocoa / Conceptual / PropertyLists / Introduction / chapter_1_section_1.html

Bien entendu, la meilleure solution consiste à utiliser un client RESTful et à utiliser une combinaison de NSURLConnection pour obtenir / envoyer les données et les classes TouchXML ( http://code.google.com/p/touchcode/wiki/TouchXML ) pour analyser les données, bien que cela nécessite davantage de travail pour les placer dans un dictionnaire. Bien sûr, si ce sont les principaux objets de données de votre système, vous souhaitez vraiment utiliser soit une classe personnalisée, soit SQLite pour stocker les données, car cela vous offre beaucoup plus de fiabilité dans le test de votre application qu’un dictionnaire.

Autres conseils

Si vous pouvez contrôler la sortie du serveur, essayez d’utiliser des plists. Sinon, l'analyse XML (ou JSON si le serveur peut le faire) vous empêche, mais vous pouvez utiliser certains frameworks. Voir la réponse à cette question .

En outre, voici un bon aperçu de la procédure à suivre pour créer des clients RESTful sur un iPhone:

https: / /developer.apple.com/webapps/articles/creatingrestfulclients.html

Vous pouvez renvoyer les données au format JSON. Il existe de nombreux analyseurs JSON open source disponibles pour l'iPhone (TouchJSON en étant un).

Il existe une autre classe disponible appelée NSPropertyListSerialization qui vous fournit un dictionnaire à partir de données.

Vous pouvez faire quelque chose comme ça avec les données que vous recevez

NSDictionary * propertyList;
Format NSPropertyListFormat;
NSString * errorStr;

propertyList = [NSPropertyListSerialization
               propertyListFromData: receiveData
               mutabilityOption: NSPropertyListImmutable
               format: & amp; format
               errorDescription: & amp; errorStr];

Désolé, je ne sais pas quelles balises sont utilisées ici pour formater le code!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top