Singleton对象在Typhoon Framework中初始化了几次

时间:2015-05-27 12:20:28

标签: ios objective-c dependency-injection typhoon

在使用台风自动注入模式时,我遇到单例对象几乎没有实例的问题。

在我的例子中有2个视图控制器,它们有自己的模型,这个模型应该使用第三个模型的单例实例。我正在开发基于故事板的应用程序,而没有将故事板与台风集成,但与plist integration一起使用。

这是我的汇编文件:

#pragma mark - Singletons
- (id<AccountManager>)accountManager {
    return [TyphoonDefinition withClass:[AccountManagerImpl class] configuration:^(TyphoonDefinition *definition) {
        definition.scope = TyphoonScopeSingleton;
    }];
}

#pragma mark - ViewController Models
- (VideoListModel *)childVideoListModel {
    return [TyphoonDefinition withClass:[VideoListModel class] configuration:^(TyphoonDefinition *definition) {
        [definition useInitializer:@selector(initWithAccountManager:)
                        parameters:^(TyphoonMethod *initializer) {
                            [initializer injectParameterWith:[self accountManager]];
                        }];
    }];
}

- (LoginModel *)loginModel {
    return [TyphoonDefinition withClass:[LoginModel class]     configuration:^(TyphoonDefinition *definition) {
        [definition useInitializer:@selector(initWithAccountManager:)
                        parameters:^(TyphoonMethod *initializer) {
                            [initializer injectParameterWith:[self accountManager]];
                        }];
    }];
}

在我的viewControllers中,我使用自动注入获得模型:

@property (nonatomic, strong) InjectedClass(VideoListModel) model;

与另一个viewController相同。当我从VideoListModel和LoginModel访问accountManager时,它有不同的实例。

我做错了什么?或者我可能在台风配置中遗漏了一些东西?

UPD:实际上看起来当我使用自动注入时,它会从不同的ModelsAssembly实例中注入模型。

0 个答案:

没有答案