【问题标题】:SwinjectStoryboard container resolves different objects (instances)SwinjectStoryboard 容器解析不同的对象(实例)
【发布时间】:2018-01-05 18:45:32
【问题描述】:

我尝试了 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 对象(实例)。

提前谢谢你!

【问题讨论】:

    标签: swift dependency-injection swinject


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多