title: new in Xcode 6.3/iOS 8.3: using self alloc for convenience constructor causes build error
body: <p>This code did not change between Xcode 6.2 and 6.3, but the line containing <code>[self alloc]</code> now causes the error:</p>
  
  <p><code>Multiple methods named 'initWithType:' found with mismatched result, parameter type or attributes</code></p>
  
  <pre><code>@implementation AGNetworkDataRequest
  
  + (instancetype)networkDataRequestWithType:(AGNetworkDataRequestType)type
  {
      AGNetworkDataRequest *r = [[self alloc] initWithType:type];//error here
      return r;
  }
  
  - (id)initWithType:(AGNetworkDataRequestType)type
  {
      //typical init code
  }
  
  //...
  </code></pre>
  
  <p>If I Cmd+click on the <code>initWithType:</code> call, I am shown the conflict in <code>CAEmitterBehavior</code>, an object not referenced in our project at all, but I'm guessing must be new in iOS 8.3.</p>
  
  <p>If I change the <code>[self alloc]</code> to <code>[AGNetworkRequest alloc]</code>, the subclasses inheriting this method will just return the parent object, which acts in opposition to how we designed this class.</p>
  
  <p>Any way to eliminate the conflict without changing the method name (which requires changing all method calls throughout the app)?</p>