Return from initializer without initializing all stored propertiesの解決方法
公開日: 2023-09-20 08:59:02
SwiftUIでこちらのエラー
Return from initializer without initializing all stored properties
Swiftのinitメソッド内で「Return from initializer without initializing all stored properties」というエラーが発生するのは、クラスや構造体のすべての格納プロパティが初期化されていないときに、初期化メソッドからreturnしようとしたときです。
Swiftでは、クラスや構造体のインスタンスが作成されるときに、すべての格納プロパティに有効な初期値が設定されていることを保証します。そのため、すべての格納プロパティが初期化されていないと、コンパイルエラーが発生します。
struct Person {
var name: String
var age: Int
init(name: String) {
self.name = name
}
}
上記の例では、Person構造体にはnameとageの2つの格納プロパティがありますが、initメソッド内でageが初期化されていません。そのため、「Return from initializer without initializing all stored properties」というエラーが発生します。
このエラーを解消するには、すべての格納プロパティを初期化する必要があります。以下のように修正すればエラーは解消されます。
struct Person {
var name: String
var age: Int
init(name: String) {
self.name = name
self.age = 0
}
}
SwiftUIを使用している場合でも、この原則は変わりません。SwiftUIのViewやViewModel、Modelなど、すべてのクラスや構造体はこのルールに従わなければなりません。