SwinjectStoryboard容器解析不同的对象(实例)

时间:2018-01-05 18:45:32

标签: swift dependency-injection swinject

我尝试过Swinject(SwinjectStoryboard)并遇到了问题。请帮我。

extension SwinjectStoryboard {

   @objc class func setup() {
      defaultContainer.register(SomeClass.self) { _ in
            SomeClass()
      }

      defaultContainer.storyboardInitCompleted(FirstViewController.self) { r, c in
           c.someClass = r.resolve(SomeClass.self)
      }

      defaultContainer.storyboardInitCompleted(SecondViewController.self) { r, c in
           c.someClass = r.resolve(SomeClass.self)
      }
   }
}

添加依赖项后,我在FirstViewController和SecondViewController中有SomeClass的不同对象(实例)。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

您需要将SomeClass的注册更改为:

defaultContainer.register(SomeClass.self) { _ in SomeClass() }
    .inObjectScope(.container)

您可以在Swinject docs中了解有关对象范围的更多信息。