title: What is the right way to store user data then inject it with Typhoon?
body: <p>In my iOS app, I have user data that gets loaded from the network and saved as a plain Objective-C object which persists its data into <code>NSUserDefaults</code>. I need to be able to log out the current user and remove it, then log in a new user and start using that one instead throughout the app. Right now it is just a singleton I'm calling <code>UserManager</code>, with a method <code>-(User)currentUser</code>. </p>
  
  <p>I'm transitioning to using Typhoon framework in my (<a href="http://typhoonframework.org" rel="nofollow">http://typhoonframework.org</a>) for dependency injection. What is the right way to store the user data? I know I could keep my <code>UserManager</code> class, inject it everywhere I need it via Typhoon, and set it as Typhoon type <code>definition.scope = TyphoonScopeSingleton;</code>. </p>
  
  <p>But if I do this, isn't it still just a singleton? I know it's a little better because it's injected into classes rather than hidden in their implementation. But, it seems like there should be a better way to just keep a <code>User</code> object somewhere and inject whichever the current one is, without wrapping it in an [injected] singleton with a getter.</p>
  
  <p>Thanks.</p>