Esiste un modo semplice per lavorare con i servizi Web per gli sviluppatori di iPhone?

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

  •  03-07-2019
  •  | 
  •  

Domanda

Vogliamo prendere i dati XML e convertirli in un oggetto NSDictionary, ma non vogliamo iterare manualmente su XML. C'è un modo semplice per farlo? Come stai facendo i servizi web per la tua app per iPhone?

È stato utile?

Soluzione

Se hai il controllo sull'output XML puoi provare a creare un elenco di proprietà che puoi quindi leggere in un dizionario usando -dictionaryWithContentsOfURL: (anche se il modo migliore asincrono sarebbe quello di ottenere i dati usando un NSURLConnection e quindi convertire i dati usando il metodo -propertyList su NSString). Puoi trovare ulteriori informazioni sugli elenchi di proprietà qui: http: // developer .apple.com / documentazione / cacao / concettuale / PropertyLists / Introduzione / chapter_1_section_1.html

Naturalmente la soluzione migliore è usare un client RESTful e usare una combinazione di NSURLConnection per ottenere / inviare i dati e le classi TouchXML ( http://code.google.com/p/touchcode/wiki/TouchXML ) per analizzare i dati, sebbene ciò richiederebbe più lavoro per inserirli in un dizionario. Naturalmente, se questi saranno i principali oggetti di dati nel tuo sistema, vuoi davvero utilizzare una classe personalizzata o SQLite per archiviare i dati in quanto ti offre molta più affidabilità nel testare la tua app rispetto a un dizionario.

Altri suggerimenti

Se riesci a controllare l'output del server, prova a usare le liste. Altrimenti sei bloccato con l'analisi di XML (o JSON se il server può farlo), ma ci sono framework che puoi usare. Vedi la risposta a questa domanda .

Inoltre, ecco una buona panoramica di come eseguire client RESTful su iPhone:

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

È possibile restituire i dati in formato JSON. Esistono molti parser JSON open source disponibili per iPhone (TouchJSON è uno).

È disponibile un'altra classe chiamata NSPropertyListSerialization che ti fornisce un dizionario dai dati.

Puoi fare qualcosa del genere con i dati che ricevi

NSDictionary * propertyList;
Formato NSPropertyListFormat;
NSString * errorStr;

propertyList = [NSPropertyListSerialization
               propertyListFromData: receivedData
               mutabilità Opzione: NSPropertyListImmutable
               formato: & formato;
               errorDescription: & amp; errorStr];

Siamo spiacenti, non so quali tag vengono utilizzati qui per la formattazione del codice!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top