不能在 属性 初始值设定项中使用实例成员 'getA'; 属性 初始值设定项 运行 在 'self' 可用之前
Cannot use instance member 'getA' within property initializer; property initializers run before 'self' is available
Y 这给出了这个错误 - 无法在 属性 初始值设定项中使用实例成员 'getA'; 属性 初始值设定项 运行 在 'self' 可用之前
class A {
var asd : String = getA()
func getA() -> String {
return "A"
}
}
您首先需要初始化您的 asd 变量。然后在 init
中,您可以将函数值应用于它。
class A {
var asd : String = ""
init() {
self.asd = self.getA()
}
func getA() -> String {
return "A"
} }
属性 初始值设定项 运行 在 self
可用之前。
解决方法是lazy initialize
属性:
class A {
lazy var asd: String = getA()
func getA() -> String {
return "A"
}
}
这将在您第一次尝试使用它时初始化 属性。
Y 这给出了这个错误 - 无法在 属性 初始值设定项中使用实例成员 'getA'; 属性 初始值设定项 运行 在 'self' 可用之前
class A {
var asd : String = getA()
func getA() -> String {
return "A"
}
}
您首先需要初始化您的 asd 变量。然后在 init
中,您可以将函数值应用于它。
class A {
var asd : String = ""
init() {
self.asd = self.getA()
}
func getA() -> String {
return "A"
} }
属性 初始值设定项 运行 在 self
可用之前。
解决方法是lazy initialize
属性:
class A {
lazy var asd: String = getA()
func getA() -> String {
return "A"
}
}
这将在您第一次尝试使用它时初始化 属性。