通信 - shirai/SwiftLearning GitHub Wiki

通信

NSURLSession

目標

  • NSURLSessionを利用して通信が行える
  • 同期/非同期を理解し、両者の方法で通信が行える

わかったこと

実装方法

 NSURL *url変数名 = [NSURL URLWithString:@"URL(httpsもしくはATS対応済みのもの)"]; //URLを用意する
 NSURLSessionConfiguration *config変数名 = [NSURLSessionConfiguration 設定するconfiguration]; //セッションに関する設定を行う
 NSURLSession *session名 = [NSURLSession sessionWithConfiguration:config変数名 delegate:self delegateQueue:[NSOperationQueue mainQueue]];//セッションを作成する
 //通信を行い、処理する内容をブロックに記述する
 //dataにダウンロードしたデータ、responseに通信内容、errorにエラー内容(通信失敗時)
 NSURLSessionDataTask *getJsonTask = [session名 dataTaskWithURL:url変数名
                                            completionHandler:
                                      ^(NSData *data, NSURLResponse *response, NSError *error) {
                                          NSDictionary *parsedJson = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
                                          for (NSDictionary *largeAreaDictionary in [parsedJson valueForKeyPath:@"results.large_area"]) {
                                              [self.largeAreaList addObject:[LargeAreaEntity initWithLargeAreaName:largeAreaDictionary[@"name"]
                                                                                               largeAreaCode:largeAreaDictionary[@"code"]]];
                                          }
                                      }];
 [getJsonTask resume];//これを行うとブロックの中の処理が行われる

わからなかったこと

  • 各種delegateの使い方
  • 同期通信の行い方

つぎにやること

  • 課題アプリ作成
  • 学習まとめ作成
  • NSURLSessionのdelegateについての勉強
  • 同期通信の行い方についての勉強