はじめに
jsonのdecodeはどうやってますか?
ジェネリクスを使った汎用的な使い方に感動したので備忘録として残しておきます。
decodeはジェネリクスで定義する
型をジェネリクスにした汎用的なdecoderを作成
import Foundation
extension Bundle{
func decode<T:Codable>(_ file:String)->T{
//URLの取得
guard let url = self.url(forResource: file, withExtension: nil) else{
fatalError()
}
//データの取得
guard let data = try? Data(contentsOf: url) else{
fatalError()
}
let decoder = JSONDecoder()
//デコード
guard let loaded = try? decoder.decode(T.self, from: data)else {
fatalError()
}
return loaded
}
}
使う時
型を指定することでジェネリクス型が型推論してくれるので呼び出すことができる
※jsonファイルの名称などは適当です。
let peoples:[String:Person] = Bundle.main.decode("peoples.json")
まとめ
特にありませんが、ジェネリクスを使うと何だかかっこいいですね!
Swiftのおすすめ参考書籍
Swiftの詳しい文法や標準ライブラリの使い方など基礎を学ぶことが出来ます。プログラミング言語としてのSwiftの学習であればこれ一冊で十分だと思います。
Swiftの勉強をするならUdemyがおすすめ!
私はUdemyでSwiftの勉強をしてアプリを自作して公開出来るようになりました。
特に以下のコースは基礎的なUIKitの使い方からAR、機械学習(CoreML)までiOSの機能を網羅しており、図解が豊富なハンズオン形式なのでアプリを作りながら楽しく学べます。
2022/12/27時点で評価数80000越えのSwiftのトップコースです。
iOS & Swift – The Complete iOS App Development Bootcamphttps://www.udemy.com/courses/search/?src=ukw&q=swift
もしご参考になりましたら下部にある役に立ったボタン、TwitterなどSNSへの投稿をしていただけると励みになります
コメント