似乎我遇到了不应该出现的问题......但我想请求一些帮助。属性初始值设定项在“自我”可用之前运行
这里有一些关于堆栈的解释,我没有得到。
有两个简单的类,其中一个指向另一个,如下所示;
class User {
lazy var name: String = ""
lazy var age: Int = 0
init (name: String, age: Int) {
self.name = name
self.age = age
}
}
class MyOwn {
let myUser: User = User(name: "John", age: 100)
var life = myUser.age
//Cannot use instance member 'myUser' within property initializer
//property initializers run before 'self' is available
}
我收到了注释的编译错误。请有人告诉我该怎么办才能解决这个案子?
非常感谢任何好人帮忙!
将代码放入方法中。您无法初始化在类的顶层依赖于对方的属性。或者使用计算属性。 Btw:User类中的'lazy'属性是无用的。 – vadian
@vadian,谢谢你的帮助。 – RafalK