-2

我正在尝试将 CoreDataStack 注册为具有对象范围的共享容器上的单个实例.container,但是它的工厂关闭被多次调用,并且当我在 Xcode 中调试内存图时,即使返回的对象不是值,也会创建该对象的多个实例-类型!

Swinject 文档:

如果工厂闭包返回值类型,则忽略对象范围,因为根据 Swift 规范,它的实例从不共享。

这种奇怪行为的根本原因是什么?

4

1 回答 1

0

使用名称注册服务可以解决问题并且不再创建实例

container.register(CoreDataStack.self, name: "CoreDataStack") {
        DefaultCoreDataStack(modelName: "name")
 }.inObjectScope(.container)
于 2020-07-13T05:52:57.097 回答