Присвоение синглтона переменной (Swift) - PullRequest
0 голосов
/ 12 декабря 2018

Это анти-паттерн иметь следующий код?

Я хочу иметь синглтон (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

РЕДАКТИРОВАТЬ: внесены улучшения в код, хотя они не имеют отношения к вопросу о том, является ли это анти-паттерном для назначения синглтона переменной иконкретно это если может вызвать утечки памяти

...