🍺

"Use '.self' to reference the type object" Swift

2023/02/23に公開約800字

はじめに

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

ログインするとコメントできます