我会开始说我对 Swinject 没有经验。
我试图弄清楚为什么Swinject.graphIdentier
实例在我的应用程序中不断增长。
在我的情况下,当我输入 ViewController 时,我创建了n个MyClass
.
每次访问屏幕时,n可以是不同的数量。
当我离开视图控制器时,所有实例MyClass
都被释放(通过观察分配分析器证明)。
我不明白的是为什么实例Swinject.graphIdentier
继续增长。
是否应该清理 swinject 中的 GraphIdentifers,如果是,我该怎么做?
下面是我的代码的一个精简的、人为的示例。
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()
}