iPhoneアプリ開発Tweet※本記事は、旧ブログからの再掲です。iPhoneアプリとサーバーとの通信方法には、同期通信と非同期通信があります。同期通信では、サーバーにリクエストを送り、そのレスポンスが返ってきてデータを全て受信するまで待ちます。その間、次の処理に遷移することはできません。ユーザーの画面操作にも反応できないため、すぐに処理が完了する場合や次の処理に遷移するにはサーバーからの返答が必要な場合などに使用することになると思います。非同期通信では、サーバーにリクエストを送った後そのレスポンスを待つ必要はなく、次の処理に遷移できます。サーバーからレスポンスが返ってきてデータを全て受信すると予め指定してあった処理が呼び出され、必要な処理を行うことができます。今回は、iPhone側からリクエストを送り、レスポンスをXMLで受け取る方法です。いうメソッドを使用してサーバーにリクエストを送信します。リクエスト情報、レスポンス情報格納エリア(ポインタ)、エラー情報格納エリア(ポインタ)を引数で渡します。**サーバー側で処理が終了しレスポンスが返ってくると戻り値として、NSDataが返されます。今回の場合には、XMLデータが返されるので、XMLParserで解析しています。レスポンス情報は以下に示した通り、いろいろな情報が得られますが、statusCodeだけ見て処理を行っています。result);非同期通信NSURLConnectionのinitWithRequest:delegate:というメソッドを使用してサーバーにリクエストを送信します。リクエスト情報、デリゲートクラスのインスタンスを引数で渡します。*デリゲートクラスのインスタンス(IN):idレスポンスは、デリゲートメソッドが受信します。以下4つのdelegateメソッドの実装が必要となります。・connection:didReceiveResponse:(レスポンス受信時に1回のみ)・connection:didReceiveData:(コンテンツデータ受信時。断片的なデータを通信が終了するまで何度も)・connection:didFailWithError:(エラー発生時)・connectionDidFinishLoading:(通信完了時に1回のみ)今回は、サーバーとの送受信を行うクラス(NetworkConnector)を用意し、そちらでリクエスト送信とレスポンス受信を行っています。デリゲート処理側では、受信完了時にサーバー側からのレスポンスデータを正常に受信できたか判断し、メイン処理側のメソッドを呼び出すようにしています。正常に受信出来ていた場合には、メイン処理側で取得したデータ(XML)を解析しています。コメントを受け付けていません。BluChic当サイトでは閲覧の追跡のためにGoogle・AmazonのサービスによりCookieが使用されています。サイトの閲覧を続けた場合Cookieの使用に同意したことになります。