2017-08-09 33 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