#swift5 #swinject
Вопрос:
Я начну с того, что скажу, что я неопытен в Свинджекте.
Я пытаюсь понять, почему Swinject.graphIdentier
в моем приложении постоянно растут экземпляры.
В моем случае, когда я ввожу ViewController, я создаю n экземпляров MyClass
. n может быть разным при каждом посещении экрана.
Когда я покидаю контроллер представления, все экземпляры MyClass
освобождаются (это доказано наблюдением за профилировщиком распределения).
Чего я не понимаю, так это почему экземпляры Swinject.graphIdentier
продолжают расти.
Должны ли графические идентификаторы в swinject когда — либо быть очищены, и если да, то как я могу это сделать?
Ниже приведен урезанный, надуманный пример моего кода.
class MyClass {
}
container.register(MyClass.self) {_ in
return MyClass()
}
//Graph Identifier Count goes up
func addItems() {
let newItem = AppAssembler.resolver.resolve(MyClass.self)
items.append(newItem)
}
//Graph Identifier count never goes down
func removeItems() {
items.removeAll()
}