无法在属性初始化程序中使用实例成员'getA';属性初始化程序在“自我”可用之前运行 [英] Cannot use instance member 'getA' within property initializer; property initializers run before 'self' is available

查看:102
本文介绍了无法在属性初始化程序中使用实例成员'getA';属性初始化程序在“自我”可用之前运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Y this giving this error - Cannot use instance member 'getA' within property initializer; property initializers run before 'self' is available

class A  {

    var asd : String  = getA()

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

    }
}


推荐答案

自身可用之前运行属性初始化程序。

Property initializer run before self is available.

解决方案是惰性初始化属性:

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

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

会在您第一次尝试使用该属性时对其进行初始化。

That will initialize the property first time you are trying to use it.

这篇关于无法在属性初始化程序中使用实例成员'getA';属性初始化程序在“自我”可用之前运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆