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(){}
以下に書くことで、アプリ立ち上がりと同時に読み込まれ、テーブルを更新、表示させます。