0

我试过 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 的不同对象(实例)。

先感谢您!

4

1 回答 1

2

您需要将注册更改SomeClass为:

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

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

于 2018-02-14T09:45:48.867 回答