title: Forward selected class to use in another class
body: <p>I'm having a bit of a brain fart. I hope someone can help me.</p>
  
  <p>I have an app that communicates with different devices. Based on which device it's communicating with, I need to use different methods.</p>
  
  <p>I have several different classes that do some parsing that I have made subclasses of a class called <code>Parse</code> (Don't confuse with the Parse cloud service), these only have Class methods. e.g. <code>Parse_Device1</code> <code>Parse_Device2</code></p>
  
  <p>I have a third class (lets call it <code>Selection</code>) that returns all sorts of different stuff depending on what device the app is communicating with.</p>
  
  <p>How can I have this class return the needed <code>Parse</code> subclass and use what's returned?</p>
  
  <p>I know I could easily <code>alloc</code> and <code>init</code> the needed class, store it or return it.
  However as all the methods on the parse classes are just Class methods, there's no need to <code>init</code> at all.</p>
  
  <p>I've tried like this, however I don't seem to be able to use the returned class directly:</p>
  
  <pre><code>+ (Parser *)parser_AccessList
  {
      switch ([self brand]) {
          case Brand1:
              return [Parse_AccessList_1 alloc];
              break;
  
          case Brand2:
              return [Parse_AccessList_2 alloc];
              break;
  
          case Brand3:
              return [Parse_AccessList_3 alloc];
              break;
  
          default:
              return nil;
              break;
      }
  }
  </code></pre>
  
  <p>I'm probably missing something really simple here.</p>
  
  <p>Thanks</p>