2017-08-09 5 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 
     } 
    } 
} 

しかし、消費者のアプリではなく、依存性注入を使用するよりも、オブジェクトを初期化するためにするvar LIB =てMyLibrary()を使用します。 initが呼び出されたときにMyLibraryクラスに依存関係を挿入するにはどうすればよいですか?

答えて

1

MyLibraryクラスのクラスメソッドを定義して、MyLibraryクラスのビルドインスタンスを返す方がよい場合があります。この方法は、でしょう:MyLibrary.instance()またはMyLibrary.instanceWithConfig(someConfig)

例に戻り、それをあなたのライブラリーの構築された&構成されたインスタンス

  • のための台風を確認して下さい。ちょうど建て&構成されたインスタンスが返されることを信頼 - これらのメソッドの

    • 呼び出し側は、オブジェクトが舞台裏の背後に構築されるか気にしないだろう。
    • パブリックコンストラクタを使用してライブラリのインスタンスを手動でアセンブリするオプションがあります。
  • +0

    ありがとうございます! – Steven

    関連する問題