Video: How To Get Unlimited UC Cash For Free in PUBG MOBILE - 100% Working & Safe Method 2024
De la Neal Goldstein
Când vorbești despre programarea cloud iOS, vorbești despre două lucruri: iCloud (care este implementat de tine de Apple și îți permite date sincronizate între dispozitive) și servicii web (care vă permit să efectuați o parte din prelucrarea aplicației de către un computer la distanță undeva în mijlocul locului unde știe unde). Serviciile Web se bazează pe modalități eficiente de predare a cererilor de servicii web - solicitările făcute de un utilizator pentru datele stocate în cloud. Cele două formate cele mai eficiente (deocamdată, cel puțin) sunt XML și JSON. Sfaturile pe care le veți găsi aici vă arată cum să configurați o solicitare web (utilizând, de exemplu, serviciul web Google Geocoder) și cum să analizați atât răspunsul XML cât și răspunsul JSON pentru a putea utiliza datele serviciului web în aplicația dvs..
Când utilizați un serviciu web care se bazează în cloud, răspunsul dvs. va fi probabil în JSON sau XML, două formate standard pentru transmitere date între un server și o aplicație web. Vor fi momente când aveți posibilitatea de a alege între cele două formate, dar de altă dată trebuie să mergeți cu ceea ce obțineți.Serviciul Google Geocoding Web, de exemplu, îți oferă o alegere.
// maps. googleapis. com / maps / api / geocode / xml
Dacă doriți răspunsul în JSON, veți folosi
// maps. googleapis. com / hărți / api / Geocodificarea / JSON? paremters
În timp ce este similar în intenție, cum obțineți informații din structurile de date XML și JSON este destul de diferită în execuție.
Parsarea unui răspuns XML din Cloud
// maps. googleapis. com / hărți / api / Geocodificarea / XML? senzor = true & address = Empire
Building State &veți primi înapoi unele XML - aceasta, de exemplu:
… 40. 7484395 -73. 9856709 …
Din moment ce XML nu se exprimă exact în moduri ușor de înțeles, atunci ar trebui să analizați orice este ceea ce vă oferă XML.
Amintiți-vă că XML este alcătuit din elemente care au etichete de început și sfârșit. Pentru a obține informații prin iCloud, utilizați clasa NSXMLParser care utilizează modelul de delegare. Iată cum ar funcționa acest lucru:
NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithData: data]; [xmlParser setDelegare: auto]; [xmlParser parse];
Se pare că există patru metode delegate NSXMLParser pe care le veți implementa pentru a analiza o structură de date XML:
parser: didStartElement: namespaceURI: qualifiedName: atribute: parser: foundCharacters: parser: didEndElement: namespaceURI: qualifiedName: parser: parseErrorOccurred:
parser: didStartElement: namespaceURI: qualifiedName: știți că parserul a găsit un element cu o etichetă, de exemplu, și depinde de dvs. să extrageți datele din parser: foundCharacters: method.Parsarea unui răspuns JSON din Cloud
Când utilizați un serviciu web bazat pe cloud, răspunsul dvs. ar putea fi în JSON. Dacă, atunci când lucrați cu serviciul dvs. web bazat pe cloud, ați introdus următoarele în browserul dvs. Web
// maps. googleapis. com / hărți / api / Geocodificarea / JSON? Senzorul = true & address = EmpireBuilding State &
veți primi înapoi câteva JSON - următoarele, de exemplurezultat {results: {{ limits:
{999 > nord-est:
{ lat: 40. 7489545, lng: -73. 98483449999999}, sud-vest: { lat: 40. 7479245, lng: -73. 9865073}}, locație: { lat: 40. 7484395, lng: -73. 9856709}, …} Din moment ce JSON este la fel de criptic ca și XML, atunci ar trebui să analizați orice este ceea ce vă oferă JSON.Parsarea JSON, cu toate acestea, este destul de diferită de parsarea XML. JSON este construit pe două structuri pe care le cunoașteți liniștit - matrice și dicționare. Următorul exemplu JSON utilizează ambele: NSError * error = nil; NSDictionary * responseDict = [NSJSONSerializare opțiuni JSONObjectWithData: date
: eroare NSJSONReadingMutableContainers: & error];
Când faci parsarea JSON, ai câteva opțiuni pe care le poți seta:
NSJSONReadingMutableContainers: Matricea și dicționarele pe care le primiți sunt mutabile, astfel încât să le puteți modifica. Implicit este imuabil.NSJSONReadingMutableLeaves: Corzile pe care le primiți sunt mutabile pentru a le putea modifica. Implicit este imuabil.
NSJSONReadingAllowFragments: Specifică faptul că parserul ar trebui să permită obiecte de nivel superior care nu sunt matrice sau dicționare. Implicit, obiectele JSON de nivel superior necesită fie o matrice, fie dicționare.
În acest caz, ați putea ajunge la locația lat și lng făcând
NSDictionary * result = [results objectAtIndex: 0]; NSDictionary * geometrie = [rezultat objectForKey: @ "geometry"]; NSDictionary * locație = [geometry objectForKey: @ "locație"]; latitudine = [valoarea locațieiForKey: @ "lat"]; longitudine = [valoarea locațieiForKey: @ "lng"];