2016-11-30 73 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