具有以下代码是否是反模式?
我想将单例(ClassB)作为变量,以便在仍使用单例的同时进行某种依赖注入。但是我被暗示,如果没有 mySingleton 这么弱,我可能会发生内存泄漏。 但我想不出任何这种情况...
class ClassA {
var mySingleton: ClassB? = ClassB.shared
deinit {
print("deinit A")
}
}
class ClassB {
static let shared = ClassB()
deinit {
print("deinit B")
}
}
var a1: ClassA? = ClassA()
var b1: ClassB? = ClassB()
a1?.mySingleton = b1
a1 = nil
b1 = nil
编辑:对代码进行了改进,尽管它们与以下问题无关:将单例分配给变量是否是反模式,特别是是否会导致内存泄漏