title: How to assign one class to be another?
body: <p>I'm trying to create a class called <code>Theme</code> in my app. Ideally, what I'd like to be able to do is calling the background color for the current theme by calling: <code>[[Theme current] background]</code>.</p>
  
  <p>Now, I wrote a class called <code>Theme</code>.</p>
  
  <p><strong>Theme.h</strong></p>
  
  <pre><code>@interface Theme : NSObject
  
  + (Theme *)current;
  
  @end
  </code></pre>
  
  <p><strong>Theme.m</strong></p>
  
  <pre><code>@implementation Theme
  
  static Theme *current = nil;
  
  + (Theme *)current {
      @synchronized(self) {
          if (current == nil) {
              current = ...This is the hard part...
          }
      }
      return current;
  }
  
  @end
  </code></pre>
  
  <p>And I also wrote a first theme, a black one.</p>
  
  <p><strong>Black.h</strong></p>
  
  <pre><code>@interface Theme (Black)
  
  + (UIColor *)background;
  
  @end
  </code></pre>
  
  <p><strong>Black.m</strong></p>
  
  <pre><code>@implementation Theme (Black)
  
  + (UIColor *)background {
      return [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
  }
  
  @end
  </code></pre>
  
  <p>What I'm having difficulties with, is how I can assign <code>Theme.current</code> to be <code>Black</code>. How do I do this?</p>