我有如下组装,它将从 plist 启动
@implementation classAAssembly
- (id)classA {
return [TyphoonDefinition withClass:[classA class] configuration:^(TyphoonDefinition *definition) {
definition.scope = TyphoonScopeSingleton;
}];
}
当应用程序加载时,这会创建实例并注入(inject)相关位置
然后我有一些静态方法需要使用它,所以我尝试如下
+ (void)staticMethod {
classAAssembly *assembly = [[classAAssembly new] activate];
classA *classA = [assembly classA];
}
问题是当我这样做时它会提供新实例,我期望的是在应用程序加载时创建的相同实例。
任何帮助,将不胜感激。
最佳答案
您正在上面创建一个新程序集。您需要做的是获取 one created using plist integration 的句柄.因此,例如要从您的应用程序委托(delegate)访问程序集,请将其注入(inject)其中。
要从静态方法访问程序集,您必须创建一个指向它的静态指针:
- (void) typhoonDidInject {
myStaticAssembly = this.assembly
}
关于ios - 使用台风注入(inject)单例提供多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40884930/