ためfailable initialiizer、ポスターは、または、次のように スウィフト復号可能な
{
"poster": {},
"recommends": []
}
マイデコード可能なクラス
である空であってもなくてもよいですポスターをオプションにするにはどうすればいいですか?私は考えていましたが、私は初期化子が必要ですが、デコード可能なのはinitが必要です。ためfailable initialiizer、ポスターは、または、次のように スウィフト復号可能な
{
"poster": {},
"recommends": []
}
マイデコード可能なクラス
である空であってもなくてもよいですポスターをオプションにするにはどうすればいいですか?私は考えていましたが、私は初期化子が必要ですが、デコード可能なのはinitが必要です。だから私は試してみる必要がありますか?推奨リストのinit(デコーダから)
public struct RecommendedList: Decodable {
public let poster: Poster?
public let recommends: [Recommend]
enum CodingKeys: String, CodingKey {
case poster
case recommends
}
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
poster = try? container.decode(Poster.self, forKey: .poster)
recommends = try container.decode([Recommend].self, forKey: .recommends)
}
}
フレームワークとの戦いはしないでください。 'throw'イニシャライザを使用してください。オプションのプロパティは十分です – vadian
イニシャライザを失敗させる方法です。あなたの 'init'がスローすれば' poster'プロパティを 'nil'に設定します。 – creeperspeak
@creeperspeakありがとう、私はこれを完全に考えていた。 – Cory