2017-08-09 34 views
1

我正在使用私人吊舱,目前我在使用Typhoon向引导课程中注入财产时遇到一些困难。使用台风将财产注入未由台风大会初始化的课程

我的类:

public class MyLibrary: NSObject { 
    var dependency: MyDependencyProtocol? 
} 

我的组件:

open class MyLibraryAssembly: TyphoonAssembly { 

    open dynamic func lib() -> Any 
    { 
     return TyphoonDefinition.withClass(MyLibrary.self) { (definition) in 
      definition?.injectProperty(#selector(getter: MyLibrary.dependency), with: self.dependency()) 
      definition?.scope = .singleton 
     } 
    } 
} 

然而,消费者应用将使用变种LIB =在MyLibrary()初始化该对象,而不是使用依赖注入。如何在调用init时将依赖项注入到MyLibrary类中?

回答

1

MyLibrary类中定义类方法可能会更好,以返回MyLibrary类的构建实例。 MyLibrary.instance()MyLibrary.instanceWithConfig(someConfig):这种方法将:

例的内置&配置实例。

  • 这些方法的调用者不会在意在后台如何构建对象 - 只要相信已构建的&配置的实例已返回。
  • 仍然可以使用公共构造函数手动组装库实例。
+0

谢谢,它的工作原理! – Steven