Vidéo: Your First User Interface (2019) - Lesson 4 2024
Par Neal Goldstein
Quand vous parlez de la programmation en nuage iOS, vous parlez de deux choses: iCloud (qui est implémenté pour vous par Apple et vous permet de Synchroniser les données entre les appareils) et Services Web (ce qui vous permet d'effectuer le traitement de votre application par un ordinateur distant quelque part au milieu de qui sait où). Les services Web reposent sur des méthodes efficaces de traitement des demandes de service Web - demandes faites par un utilisateur pour des données stockées dans le cloud. Les deux formats les plus efficaces (pour le moment, au moins) sont XML et JSON. Les conseils que vous trouverez ici vous montrent comment configurer une requête Web (en utilisant le service Web Google Geocoder à titre d'exemple) et comment analyser à la fois la réponse XML et la réponse JSON afin de pouvoir utiliser les données du service Web dans votre application.
Analyse des données renvoyées du cloud par un service Web
Lorsque vous utilisez un service Web basé sur le cloud, votre réponse est susceptible d'être en format JSON ou XML, deux formats standard pour la transmission des données entre un serveur et une application Web. Il y aura des moments où vous avez le choix entre les deux formats, mais d'autres fois vous devez aller avec ce que vous obtenez.
Le service Web Google Geocoding, par exemple, vous donne le choix.
Si vous voulez la réponse au format XML, vous devez utiliser
// maps. googleapis. com / maps / api / geocode / xml
Si vous vouliez la réponse dans JSON, vous utiliseriez des
cartes //. googleapis. com / maps / api / géocode / json? paremters
Bien que similaire dans l'intention, la façon dont vous obtenez des informations sur les structures de données XML et JSON est très différente dans l'exécution.
Analyse d'une réponse XML à partir du Cloud
Lorsque vous utilisez un service Web basé sur le cloud, votre réponse peut être en XML. Si, lors de l'utilisation de votre service Web en nuage, vous saisissez ce qui suit dans votre navigateur Web
// maps. googleapis. com / maps / api / géocode / xml? sensor = true & address = EmpireState Building &
vous récupéreriez du XML - ceci, par exemple:
… 40. 7484395 -73. 9856709 …
Comme XML ne s'exprime pas exactement d'une manière facile à comprendre, vous devrez alors analyser ce que XML vous donne.
Rappelez-vous que le XML est constitué d'éléments qui ont des balises de début et de fin. Pour obtenir les informations via iCloud, vous utilisez la classe NSXMLParser qui utilise le modèle de délégation. Voici comment cela fonctionnerait:
NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithData: données]; [xmlParser setDelegate: self]; [xmlParser parse];
Il s'avère qu'il existe quatre méthodes de délégué NSXMLParser que vous allez implémenter pour analyser une structure de données XML: