首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typhoon获取实例而不是定义

Typhoon获取实例而不是定义
EN

Stack Overflow用户
提问于 2015-11-11 00:19:54
回答 1查看 367关注 0票数 1

我正在使用typhoon与plist集成。在一个程序集中,我需要创建一个具有如下初始化器的实例:@selector(initWithBundleURL:moduleProvider:launchOptions:)第二个参数moduleProvider:接受一个块,该块返回一个对象数组。我想使用typhoon来注入该数组中的每个对象。

代码语言:javascript
复制
- (RCTBridge *)bridgeWithModule1:(Module1 *)module1 module2:(Module2 *)module2 {
return [TyphoonDefinition withClass:[RCTBridge class] configuration:^(TyphoonDefinition *definition) {
    [definition useInitializer:@selector(initWithBundleURL:moduleProvider:launchOptions:) parameters:^(TyphoonMethod *initializer) {

        [initializer injectParameterWith:url];

        RCTBridgeModuleProviderBlock block = ^NSArray *() {
            return @[module1, module2];
        };
        [initializer injectParameterWith:block];

        [initializer injectParameterWith:nil];
    }];

    definition.scope = TyphoonScopeLazySingleton;
}];
}

上面的代码不起作用。因为module1module2在运行时是TyphoonDefinition,而不是真正的实例。有没有办法使用typhoon注入真实实例?

EN

回答 1

Stack Overflow用户

发布于 2015-11-11 06:27:04

使用Typhoon,您可以使用具有run-time arguments的程序集接口来混合静态和运行时依赖项。这避免了创建自定义工厂类的样板。然而,because of the way Typhoon works你不能修改定义中的运行时参数。

如果需要这样做,请创建自定义工厂类。

  • Inject the TyphoonAssembly到您的自定义类中,为正在构建的对象提供静态依赖关系。
  • 工厂方法将类似于您在程序集接口上定义的方法。将静态依赖项与运行时参数混合,并返回build对象。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33634649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档