title: Can an ObjC class object conform to a protocol?
body: <p>Is there a way to indicate to the compiler that a class object conforms to a protocol?</p>
  
  <p>As I understand, by creating <code>+(void)foo</code> class methods, an <em>instance of that class object</em> will have those methods as <em>instance methods</em>. So, as long as I create <code>+(void)foo</code> methods for all required protocol methods, I can have a class object act as a delegate.</p>
  
  <p>My problem of course is that in the class's header file, I only know how to indicate that instances of the class conform to the protocol (as is typically the case). So, the best I've figured out is to cast the class object like so:</p>
  
  <pre><code>something.delegate = (id&lt;SomethingDelegate&gt;)[self class]
  </code></pre>
  
  <p>Any ideas?</p>
  
  <p>Related, but different:
  <a href="https://stackoverflow.com/questions/9387262/objc-is-there-such-a-thing-as-a-class-protocol">ObjC: is there such a thing as a &quot;class protocol&quot;?</a></p>