iPhone開発用のWebサービスを操作する簡単な方法はありますか?
質問
XMLデータを取得してNSDictionaryオブジェクトに変換したいのですが、XMLを手動で反復処理したくありません。これを行う簡単な方法はありますか? iPhoneアプリのWebサービスはどのようにしていますか?
解決
XML出力を制御できる場合は、-dictionaryWithContentsOfURLを使用して辞書に読み込むことができるプロパティリストを作成してみてください(ただし、より良い非同期の方法はNSURLConnectionを使用してデータを取得し、データを変換することです) NSStringで-propertyListメソッドを使用)。プロパティリストの詳細については、次を参照してください。 http:// developer .apple.com / documentation / Cocoa / Conceptual / PropertyLists / Introduction / chapter_1_section_1.html
もちろん、最良の解決策は、RESTfulクライアントを使用し、NSURLConnectionの組み合わせを使用してデータとTouchXMLクラスを取得/送信することです( http://code.google.com/p/touchcode/wiki/TouchXML )を使用してデータを解析します。ただし、データを辞書。もちろん、これらがシステムの主要なデータオブジェクトになる場合は、カスタムクラスまたはSQLiteを使用してデータを保存する必要があります。これは、辞書よりもアプリのテストの信頼性がはるかに高いためです。
他のヒント
サーバーの出力を制御できる場合は、plistを使用してみてください。それ以外の場合、XML(またはサーバーがそれを実行できる場合はJSON)の解析に固執していますが、使用できるフレームワークがあります。 への回答をご覧くださいこの質問。
また、iphoneでRESTfulクライアントを実行する方法の概要を以下に示します。
https:/ /developer.apple.com/webapps/articles/creatingrestfulclients.html
データをJSON形式で返すことができます。 iPhoneには多くのオープンソースJSONパーサーがあります(TouchJSONは1つです)。
データから辞書を取得するNSPropertyListSerializationと呼ばれる別のクラスがあります。
受信したデータを使用してこのようなことを行うことができます
NSDictionary * propertyList;
NSPropertyListFormat形式;
NSString * errorStr;
propertyList = [NSPropertyListSerialization
propertyListFromData:receivedData
mutabilityOption:NSPropertyListImmutable
形式:& format
errorDescription:& errorStr];
申し訳ありませんが、ここでコードのフォーマットにどのタグが使用されているかわかりません!