構造体を初期化する方法についてお力添え願いたいです。
構造体を空の配列として初期化する場合は、下のデータモデルを例にしますと、
Answersで簡単にできるかと思いますが、
配列ではなく単一のデータとして取得したい場合に、
簡単にデフォルト値を設定し初期化することは可能でしょうか?
下記、初期化したいデータモデルです。
SwiftUI
1 2//JSONデータを格納するモデルです 3struct Answers: Identifiable, Decodable { 4 let id: Int 5 let questionsUsersId: Int 6 let reactions: [Reactions] 7 8 enum CodingKeys: String, CodingKey { 9 case id = "questions_id" 10 case questionsUsersId = "questions_users_id" 11 case reactions = "reactions" 12 } 13 14 15 init(from decoder: Decoder) throws { 16 17 let container = try decoder.container(keyedBy: CodingKeys.self) 18 19 self.id = try container.decodeIfPresent(Int.self, forKey: .id) ?? 0 20 self.questionsUsersId = try container.decodeIfPresent(Int.self, forKey: .questionsUsersId) ?? 0 21 self.reactions = try container.decodeIfPresent([Reactions].self, forKey: .reactions) ?? [Reactions]() 22 } 23 }
なお、var answer: Answers = Answers( )で初期化を試みましたが、下記エラーが出てしまいました。
//Missing argument for parameter 'from' in call //Insert 'from: <#Decoder#>'
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。