ios - 使用台风注入(inject)单例提供多个实例

标签 ios objective-c typhoon

我有如下组装,它将从 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/

相关文章:

iphone - 如何在我的类中进行多个 xml 解析

ios - 向上滚动时 UITableView 有延迟

ios - Typhoon:将子类属性从 withFactory:selector: 注入(inject)样式注入(inject)到定义中

mysql - 带有数组的静态单元格

ios - Xamarin iOS 链接器导致 AutoMapper 问题

ios - 将 UITextField 设置为电话号码

ios - 是否可以在 Typhoon 中重用具有运行时参数的定义?

ios:用返回替换 NSString 中的单词

iOS8 CoreMotion 在应用暂停时从 startActivityUpdatesToQueue 获取更新

Typhoon - 使用 Storyboard 的运行时可配置组件