2016-11-30 19 views
1

我必須裝配如下所示,從plist中發起利用颱風注射單身給多個實例

@implementation classAAssembly 
- (id)classA { 
    return [TyphoonDefinition withClass:[classA class] configuration:^(TyphoonDefinition *definition) { 
       definition.scope = TyphoonScopeSingleton; 
      }]; 
} 

當應用程序加載這將創建實例,並注入到相關的地方

然後我有一些靜態方法需要利用這一點,所以我想爲波紋管

+ (void)staticMethod { 
     classAAssembly *assembly = [[classAAssembly new] activate]; 
     classA *classA = [assembly classA]; 
} 

的問題是,當我做到這一點提供了新的實例,我期待在創建時的應用程序加載相同的實例。

任何幫助,將不勝感激。

回答

2

您正在創建一個新的程序集。你需要做的是得到one created using plist integration的句柄。因此,例如,從您的應用程序委託訪問程序集,將其注入到該程序中。

從靜態方法訪問組件,你必須創建一個靜態指針指向它:

- (void) typhoonDidInject { 
    myStaticAssembly = this.assembly 
} 
+0

感謝您的回覆PROMT,其實我的情況是這樣的。我沒有注入classA到包含靜態方法的classB,所以我想訪問使用plist在應用程序加載中初始化的程序集。在臺風中有沒有任何方式或近似功能可以靜態獲取? @Jasper Blues – cham