Swift:在init中调用self方法

RnM*_*Mss 1 swift

我想实现这样的事情:

class A {
    var a, b, c, d: Int

    init() {
        reset()
    }

    func reset() {
        a = 1
        b = 2
        c = 3
        d = 4
    }

    func blablabla() { 
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

哪些无法编译,错误信息:

在初始化之前使用变量"self.a"

它不会使我必须将代码复制从意义reset()init().

这是缺陷还是有另一种方法可以做到这一点?

Ant*_*nio 11

不,它不是缺陷,self在初始化所有存储的属性之前,不能在初始化程序中引用,并且已调用超类初始化程序(如果有的话).

在你的情况下,在方法中进行初始化似乎是合法的,并从初始化程序调用它,但不幸的是它不起作用.

可能的解决方案: