无法在属性初始化程序中使用实例成员'getA';属性初始化程序在“自我”可用之前运行

vai*_*bby 3 variables class swift swift3

是的,这会导致此错误-无法在属性初始化程序中使用实例成员'getA';属性初始化程序在“自我”可用之前运行

class A  {

    var asd : String  = getA()

    func getA() -> String {
        return "A"

    }
}
Run Code Online (Sandbox Code Playgroud)

ppa*_*ica 5

之前运行的属性初始化self程序可用。

解决方案是针对lazy initialize该属性:

class A {
    lazy var asd: String  = getA()

    func getA() -> String {
        return "A"
    }
}
Run Code Online (Sandbox Code Playgroud)

这将在您首次尝试使用该属性时对其进行初始化。