2011-01-11 10 views
1

Ich bekomme Informationen (ID, Name, Adresse) in Form von XML-Zeichenfolge von der. NET-Webserver.Wie XML-String in iPhone 2.0 zu analysieren

Ich benutze NSXMlparsing, um diese XML-Zeichenfolge in iPhone OS 4.0 zu analysieren.

Jetzt muss ich die gleiche Anwendung in Iphone OS 2.0 tun.

Ich fand Nsxmlparsing Delegat sollte 4.0 und später arbeiten.

Kann jemand bitte vorschlagen, welche Methode geeignet ist, XML-String und Beispiel-Tutorial zu analysieren.

Vielen Dank im Voraus.

+0

Warum sind Sie Apps für iPhone OS 2.0 zu schreiben? Meinst du 3.0? –

+2

-1 für die Suche nicht zuerst SO für ähnliche Fragen. – Moszi

+2

@Moszi Ich stimme mit dem Downvote überein, ich habe den Teil über sie gelesen, der momentan NSXMLParser verwendet und sich über seine iOS2.0-Kompatibilität wundere, anstatt die spätere Frage nach anderen Methoden, die tatsächlich eine Suchfunktionsausbildung rechtfertigen würden. Anstatt sie zu meiden, dachte ich, es wäre besser, das Problem mit der iOS-Version zu lösen. – badgerr

Antwort

0

Bearbeitet: NSXMLParser von doc Verfügbarkeit Verfügbar in iOS 2.0 und höher.

+0

Das OP gab an, dass sie dies derzeit nutzen. – badgerr

+0

Thx Mann, ich habe meinen Beitrag bearbeitet. –

0

Nach the NSXMLParser documentation können Sie es mit iOS 2.0 verwenden. Die Delegatendokumentation erwähnt iOS4. Eine davon ist falsch, und ich habe kein iOS 2.0-Gerät, um das zu testen, aber hast du deine App in ihrer aktuellen Form ausprobiert? Meine Annahme hier ist, dass die Delegatendokumentation falsch ist, und tatsächlich hat sie Unterstützung für 2.0.

+0

NSXMLParserDelegate ist seit iOS 2.0 verfügbar (ich benutze es seither). Die Verfügbarkeitsdokumentation ist ein bisschen seltsam, aber für die Methoden heißt es: Verfügbar in iOS 2.0 und höher. Verfügbar als Teil eines informellen Protokolls vor iOS 4.0. – mluisbrown

+0

@mluisbrown Danke für die Bestätigung. – badgerr

2

NSXMLParserDelegate wurde in iOS 4.0 hinzugefügt. Sie können dieses Protokoll mit einer # define-Direktive deklarieren, um die Protokolldeklaration in iOS-Versionen vor 4.0 einzufügen, damit Sie Ihren Code kompilieren können, aber Sie müssen nicht unbedingt alle Methoden in diese Protokolldefinition aufnehmen.
Sie können dies so etwas wie tun:

#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_4_0 

@protocol NSXMLParserDelegate <NSObject> 
@end 

#endif 
1

NSXMLParser seit iPhone OS 2.0 zur Verfügung. Das Delegiertenprotokoll war immer auch verfügbar, aber vor iOS 4.0 war NSXMLParserDelegate ein sogenanntes informelles Protokoll, z.B. nicht explizit definiert.

Ab iOS 4.0 sind viele Protokolle, die früher informell zu tatsächlichen Formatprotokollen befördert wurden, NSXMLParserDelegate ist einer von ihnen.

Die Warnung erhalten Sie über nicht auf das Protokoll entspricht baut gegen SDK 4.0 und höher, oder Protokoll fehlt, wenn Gebäude gegen einen früheren SDK von konformen dem Protokoll bedingt als solche behoben werden kann:

@interface MyClass : NSObject 
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0 
    <NSXMLParserDelegate> 
#endif 
{ 
    // Your ivars here 
} 
// And methods here as usual 
@end 

oder Sie können den Compiler machen durch Gießen Ihre Delegierten id halt die Klappe, wenn es wie diese Einstellung:

[myXMLParser setDelegate:(id)self]; // Assuming self is the delegate