在 Swift 2.1 我需要 initialize使用类方法之前的每个属性。但是如果我想要一个属性是它的子类,我将有一个无限循环。这可能吗?
class Myclass {
let mySubClass:SubClass
init() {
mySubClass = SubClass()
print("Init my class")
}
}
class SubClass:Myclass {
override init() {
print("Init subclass")
}
}
let myClass = Myclass()
最佳答案
您可以使用惰性存储属性。
子类的实例只有在第一次使用时才会被初始化。
class Myclass {
lazy var mySubClass : SubClass = {
return SubClass()
}()
init() {
print("Init my class")
}
}
class SubClass:Myclass {
override init() {
print("Init subclass")
}
}
let myClass = Myclass()
myClass.mySubClass
关于swift - 我可以将我的类的子类作为 Swift 中的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34955812/