1

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

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

这是我的汇编文件:

#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 的不同实例中注入模型。

4

0 回答 0