另一个从Initializer返回而没有初始化所有存储属性错误

时间:2016-03-14 04:48:23

标签: swift

为什么我得到"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
    }
}

1 个答案:

答案 0 :(得分:1)

Bar var f: Foo,您需要为其设置值,但init只设置i。您必须为其指定默认值或在init方法中设置它。