将单例分配给变量(Swift)

时间:2018-12-12 15:09:24

标签: swift memory-leaks singleton retain-cycle retaincount

具有以下代码是否是反模式?

我想将单例(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

编辑:对代码进行了改进,尽管它们与以下问题无关:将单例分配给变量是否是反模式,特别是是否会导致内存泄漏

0 个答案:

没有答案