Gibt es eine einfache Möglichkeit, mit Web-Services für iPhone dev zu arbeiten?
Frage
Wir wollen XML-Daten nehmen und es zu einem NSDictionary Objekt zu konvertieren, aber wir wollen nicht manuell über die XML iterieren. Gibt es eine einfache Möglichkeit, dies zu tun? Wie geht es Ihnen Web-Services für Ihr iPhone app?
Lösung
Wenn Sie die Kontrolle über die XML-Ausgabe, die Sie könnten versuchen, eine Eigenschaft Liste erstellen, die Sie dann in ein Wörterbuch mit -dictionaryWithContentsOfURL lesen kann: (obwohl die bessere asynchrone Art und Weise die Daten unter Verwendung eines NSURLConnection wäre zu bekommen und dann die Daten konvertieren Verwendung des Verfahrens auf -propertyList NSString). Sie können mehr über Eigenschaftslisten finden Sie hier: http: // Entwickler .apple.com / Dokumentation / Cocoa / Conceptual / Propertylists / Einführung / chapter_1_section_1.html
Natürlich ist die beste Lösung ist, ein RESTful-Client zu verwenden und eine Kombination aus NSURLConnection verwenden, um die Daten und die TouchXML Klassen zu erhalten / senden (
Andere Tipps
Wenn Sie die Serverausgabe steuern können, versuchen plists verwenden. Ansonsten sind Sie mit Parsing XML (oder JSON, wenn der Server das tun kann) stecken, aber es gibt Frameworks Sie verwenden können. Siehe die Antwort auf diese Frage .
Auch hier ist eine gute Übersicht darüber, wie RESTful Clients auf dem iPhone zu tun:
https: / /developer.apple.com/webapps/articles/creatingrestfulclients.html
Sie können die Daten im JSON-Format zurück. Es gibt viele Open-Source-JSON-Parser für das iPhone (TouchJSON eins ist).
Es gibt eine andere Klasse zur Verfügung genannt NSPropertyListSerialization, die Ihnen ein Wörterbuch von Daten bekommt.
Sie können mit den Daten etwas tun Sie erhalten
NSDictionary * property;
NSPropertyListFormat Format;
NSString * errorStr;
property = [NSPropertyListSerialization
propertyListFromData: receivedData
mutabilityOption: NSPropertyListImmutable
Format: & Format
errordescription: & errorStr];
Sorry, nicht wissen, welche Tags verwendet werden hier für die Formatierung von Code!