Video: Taking Notes: Crash Course Study Skills #1 2024
By Neal Goldstein
Als je het hebt over iOS-cloudprogrammering, heb je het over twee dingen: iCloud (die door Apple voor jou is geïmplementeerd en waarmee je synchronisatiegegevens tussen apparaten) en webservices (waarmee u de verwerking van sommige apps kunt laten uitvoeren door een externe computer ergens in het midden van wie weet waar). Webservices zijn afhankelijk van efficiënte manieren om webserviceaanvragen over te dragen - verzoeken van een gebruiker om gegevens die zijn opgeslagen in de cloud. De twee meest efficiënte formaten (voorlopig althans) zijn XML en JSON. De tips die u hier vindt, tonen u hoe u een webverzoek instelt (met behulp van de Google Geocoder-webservice als voorbeeld) en hoe u zowel het XML-antwoord als het JSON-antwoord kunt analyseren, zodat u de webservicegegevens in uw toepassing kunt gebruiken.
Parsing-gegevens teruggestuurd vanuit de cloud door een webservice
Wanneer u een webservice gebruikt die is gebaseerd in de cloud, is uw reactie waarschijnlijk in JSON of XML, twee standaardindelingen voor verzenden gegevens tussen een server en een webtoepassing. Er zullen momenten zijn dat je een keuze hebt tussen de twee formaten, maar andere keren moet je gaan met wat je krijgt.
De Google Geocoding-webservice geeft u bijvoorbeeld een keuze.
Als u het antwoord in XML-indeling wilt gebruiken, gebruikt u
// kaarten. googleapis. com / maps / api / geocode / xml
Als u het antwoord in JSON wilde, zou u
// maps gebruiken. googleapis. com / maps / api / geocode / JSON? paremters
Hoewel qua opzet vergelijkbaar, hoe u informatie uit XML- en JSON-gegevensstructuren haalt, is de uitvoering heel anders.
Een XML-reactie parseren vanuit de cloud
Wanneer u een webservice gebruikt die is gebaseerd op de cloud, is uw antwoord mogelijk in XML. Als u bij het werken met uw cloudgebaseerde webservice het volgende moet invoeren in uw webbrowser
// maps. googleapis. com / maps / api / geocode / xml? sensor = true & address = EmpireState Building &
krijg je wat XML terug - dit, bijvoorbeeld:
… 40. 7484395 -73. 9856709 …
Omdat XML zich niet precies uitdrukt op manieren die gemakkelijk te begrijpen zijn, zou u moeten analyseren wat XML u ook biedt.
Denk eraan dat XML bestaat uit elementen met begin- en eindtags. Om bij de informatie via iCloud te komen, gebruikt u de klasse NSXMLParser die het delegatiepatroon gebruikt. Hier is hoe dat zou werken:
NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithData: data]; [xmlParser setDelegate: self]; [xmlParser parseren];
Er zijn vier NSXMLParser-gedelegeerde methoden die u gaat implementeren om een XML-gegevensstructuur te analyseren: