在我的iOS应用程序中,我有从网络加载的用户数据,并保存为一个普通的Objective-C对象,该对象将其数据保存到UserManager
。我需要能够注销当前用户并将其删除,然后登录新用户并开始在整个应用程序中使用该用户。现在它只是一个我正在调用-(User)currentUser
的单身人士,方法UserManager
。
我正在转换为使用我的http://typhoonframework.org中的Typhoon框架进行依赖注入。存储用户数据的正确方法是什么?我知道我可以保留我的definition.scope = TyphoonScopeSingleton;
课程,通过Typhoon将它注入我需要的任何地方,然后将其设置为Typhoon type User
。
但如果我这样做,它不仅仅是一个单身人士吗?我知道它更好一点,因为它被注入到类中而不是隐藏在它们的实现中。但是,似乎应该有一个更好的方法来保持一个class App extends React.Component {
render() {
if (!adminLogin){
this.context.router.transitionTo('/login');
}
return (
<div className="wrapper">
<Navbar />
<SidebarLeft />
<div className="content-wrapper">
{this.props.children}
</div>
<Footer />
</div>
);}}
App.contextTypes = {
router: React.PropTypes.func
};
export default App;
对象的某个位置并注入当前的对象,而不用带有getter的[inject]单例包装它。
感谢。
答案 0 :(得分:0)
感谢您使用Typhoon!
如果我理解正确,你需要在你的类中注入currentUser,如:
@implementation Assembly
- (User *)currentUser
{
return [TyphoonDefinition withFactory:[self userManager] selector:@selector(currentUser)];
}
- (UserManager *)userManager
{
return [TyphoonDefinition withClass:[UserManager class] configuration:^(TyphoonDefinition *definition) {
definition.scope = TyphoonScopeSingleton;
}];
}