title: How to avoid "incomplete implementation" warning in partial base class
body: <p>I have created a protocol that my classes need to implement, and then factored out some common functionality into a base class, so I did this:</p>
  
  <pre><code>@protocol MyProtocol
  - (void) foo;
  - (void) bar;
  @end
  
  @interface Base &lt;MyProtocol&gt;
  @end
  
  @interface Derived_1 : Base
  @end
  
  @interface Derived_2 : Base
  @end
  
  @implementation Base
  - (void) foo{
  //something foo
  }
  @end
  
  @implementation Derived_1
  - (void) bar{
  //something bar 1
  }
  @end
  
  @implementation Derived_2
  - (void) bar{
  //something bar 2
  }
  @end
  </code></pre>
  
  <p>In this way in my code I use a generic id&lt;MyProtocol&gt;.</p>
  
  <p>The code works (as long as Base is not used directly) but the compiler chokes at the end of the implementation of Base with a warning:</p>
  
  <pre>Incomplete implementation of class Base</pre>
  
  <p>Is there a way to avoid this warning or, even better, a more proper way to obtain this partially implemented abstract base class behavior in Objc?</p>