在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/