通信 - 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];//これを行うとブロックの中の処理が行われる
わからなかったこと
つぎにやること