質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

structure

このタグは、プログラム言語におけるデータ型structure(構造体)に関するタグです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2220閲覧

【SwiftUI】構造体(Struct)の初期化について

ishiishiyay

総合スコア33

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

structure

このタグは、プログラム言語におけるデータ型structure(構造体)に関するタグです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/12/08 16:34

構造体を初期化する方法についてお力添え願いたいです。

構造体を空の配列として初期化する場合は、下のデータモデルを例にしますと、
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#>'

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

すみません、自己解決したため質問を閉じさせていただきます。
Model内にinitをもう1つ書くことで解決しました。詳細はこちらをご参照ください。

https://stackoverflow.com/questions/70284537/swiftui-how-to-initialize-an-empty-struct/70286741?noredirect=1#comment124250290_70286741

投稿2021/12/10 00:56

ishiishiyay

総合スコア33

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問