【发布时间】:2021-01-15 09:02:37
【问题描述】:
我有 2 节课。 Child 类需要在其初始化程序中引用 Parent。
class Child {
init(parent: Parent)
}
class Parent {
init()
public lazy var child: Child = Child(parent: self)
}
由于我不能在 Parent 的 init() 中使用 self 来构造其 child 属性。我为child 属性创建了一个lazy var,如下所示:
public lazy var child: Child = Child(parent: self)
但我需要将其设为 var 才能将其标记为懒惰。有没有办法使child 不可变并且能够在调用child 属性时构造它一次?
【问题讨论】:
-
该方法无论如何都不好,因为如果两个属性都很强,它会导致保留周期。将
Parent中的child属性声明为weak var child : Child!,并在Child的初始化器中赋值
标签: swift