🍺
"Use '.self' to reference the type object" Swift
はじめに
ios開発をしているとき.こんなエラーに出会いました.
このプログラムはNetWorkingにおける,APIからのレスポンスであるJSONをデコードするための処理です.Resultは以下のように定義されています.
struct Result: Decodable {
let hits: [Post]
}
struct Post: Decodable, Identifiable {
var id: String {
return objectID
}
let objectID: String
let points: Int
let title: String
let url:String
}
Use '.self' to reference the type object
今回遭遇したエラーについて,日本語に訳せば「型オブジェクトを参照するためには'.self'を使え.」となります.
これが意味するところは言葉の通りで,型を参照するには'.self'が必要ということです.
let results = try decoder.decode(type: Decodable.Protocol, from: Data)
decode()では引数にDecodableプロトコルに準拠した型(クラスや構造体)への参照が要求されており,型を渡す際には'.self'をつける必要があるのです.
最終的に次のようになります
let results = try decoder.decode(Result.self, from: safeData)
Discussion