iOSアプリで使用されるWebサービスについての理解を明確にしたかっただけです。
したがって、NSURLConnectionは、iOSアプリからWebメソッドを呼び出し、Webメソッドによって返されるデータを取得するために使用されます。そして、データが受信されると、Webサービスの書き込み内容に応じて、XMLParserまたはJSONパーサーのいずれかを使用してそのデータを解析できます。それは正しいですか?
iOSアプリで使用されるWebサービスについての理解を明確にしたかっただけです。
したがって、NSURLConnectionは、iOSアプリからWebメソッドを呼び出し、Webメソッドによって返されるデータを取得するために使用されます。そして、データが受信されると、Webサービスの書き込み内容に応じて、XMLParserまたはJSONパーサーのいずれかを使用してそのデータを解析できます。それは正しいですか?
コメントで他の人がすでに言ったことに追加するだけです:
理想的には、メイン スレッドをブロックしないNSURLConnection のデリゲートを使用して、常に非同期で接続する必要があります。ご存じないかもしれませんが、iOS はメイン スレッドを長時間ブロックしているアプリケーションを強制終了します。場合によっては同期接続でも問題ありませんが、90% 以上の場合は非同期接続が必要になると思います。
そうは言っても、非同期接続は独自の一連の頭痛の種を引き起こします。ユーザーにアプリケーション インターフェイスへのアクセスを許可する前にデータが必要な場合は、読み込み画面をスローしてから削除する必要があります。ユーザーが新しいリクエストを開始するアプリケーションの別の部分に移動した場合、リクエストのキャンセルを管理する必要があります。また、ユーザーがアプリをバックグラウンドで実行した場合に、進行中のリクエストをバックグラウンドで完了するために登録する必要があるかどうかも判断する必要があります。
JSON の解析側では、NSString から JSON を変換すると NSString 自体から多くのオーバーヘッドが追加されるため、可能な場合は常に NSData を使用することをお勧めします。私は個人的に Apple が提供する JSON パーサーは使用しませんが、 Apple のバイナリ plist パーサーよりも高速な優れた JSONKitを使用します。ただし、JSON が JSON RFC に厳密に準拠し、ASCII ではなく UTF-8/16/32 でエンコードされている必要があります。これは、利用可能なより高速な JSON パーサーの中でかなり標準的です。
可能であれば、XML をまとめて使用しないでください。組み込みの iPhone パーサーは SAX スタイルのパーサーのみであり、これを実装するのは面倒です。XML を使用する必要がある場合は、Ray Wenderlich の XML パーサーの比較を見て、適切なものを選択してください。ただし、解析する XML ドキュメントが大きい場合は、iDevices の処理能力が限られているため、おそらく SAX が唯一の選択肢となります。
- 編集 -
コメンターの 1 人が SBJSON について言及しています。私はそれに対して完全に反対することをお勧めします。これは、Apple の JSON パーサー (iOS 5 以降で利用可能) よりも遅く、JSONKit や他のいくつかのパーサーよりも桁違いに遅いです。JSON 解析でもエラーが発生したため、現在のエンタープライズ レベルの iOS アプリケーションを SBJSON から移動しました。