好像我遇到了本不应该出现的问题……但我想寻求帮助。
这里有一些我没有得到的解释。
具有两个简单的类,其中一个引用另一个,如下所示;
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 }
我收到注释的编译错误。有人可以告诉我该怎么办吗?
非常感谢任何好人的帮助!
正如 vadian 正确指出的 那样, 您应该init在以下情况下创建一个:
init
class MyOwn { let myUser: User var life: Int init() { self.myUser = User(name: "John", age: 100) self.life = myUser.age } }
您不能为 依赖 于另一个实例属性的存储属性提供默认值。