見出し画像

Swiftで行こう!--CodableでAPIを!

の続きです。

便利な通信ライブラリとCodableを使う方法は

で説明されています。そして

ですね。これを参考に自分で実際にXcode で動かしてみます。

基本的なテーブルの作り方は

で書いているようにすれば表示されるようになります。

QiitaのAPIを利用します。それでまず、全体像ですが、

Codableの基本、構造体、StructでCodableに準拠させます。

struct Article: Codable {
   var title: String
   var user: User
   struct User: Codable {
       var id: String
   }
}

そして構造体Struct"Qiita"に関数funcを定義しています。func fetchArticle(completion: @escaping ([Article]) -> Void){}

その内容ですが、まず通信です。

URLSession,URLSessionDataTask

でJSONデータ をWEBから取得します。

次にdo catchでエラー処理を含めて記述。JSONを使えるようにパースします。

let articles = try JSONDecoder().decode([Article].self, from: jsonData)
               completion(articles)

これで"articles"にパースされたデータ が格納されました。

あとはそのデータ をテーブルに表示させると出来上がりです。

すごく簡単に書きましたが、通信の部分が非同期通信となったり、この部分の理解が必要なのでまた少し調べてみようかな。

 override func viewDidLoad() {
       super.viewDidLoad()
    
       Qiita.fetchArticle(completion: { (articles) in
           self.articles = articles
           DispatchQueue.main.async {
               self.tableView.reloadData()
           }
       })  
   }
override func viewDidLoad(){}

以下に書くことで、アプリ立ち上がりと同時に読み込まれ、テーブルを更新、表示させます。

この記事が気に入ったらサポートをしてみませんか?