在使用台风自动注入模式时,我遇到单例对象几乎没有实例的问题。
在我的例子中有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实例中注入模型。