为什么我得到"Return from Initializer without initializing all stored properties"
即使我已经初始化了所有内容?
在这个简单的例子中,struct Foo中的所有内容都被显式地和Foo.init()
例程中的所有内容初始化。那么为什么代码在Bar.init()
例程结束时失败?
struct Foo {
var x: Double = 0.0
var y: Double = 0.0
var z: Double = 0.0
init() {
x = 0.0
y = 0.0
z = 0.0
}
}
struct Bar {
var i: Int = 0
var f: Foo
init (i: Int) {
self.i = i
}
}
答案 0 :(得分:1)
在Bar
var f: Foo
,您需要为其设置值,但init
只设置i
。您必须为其指定默认值或在init
方法中设置它。