title: Property type '' is incompatible with type '' inherited from ''
body: <p>I created a BaseRequest Class and it has a property conformed BaseParams protocol.
  and next I created a DiagramReqesut Class inherited from BaseRequest and it has a property whose type is DiagramParam conformed BaseParams protocol as well.</p>
  
  <p>I think it is safe for compiling, but xcode still warn that: 
  Property type 'DiagramParams *' is incompatible with type 'id' inherited from 'BaseRequest'</p>
  
  <p>I wonder why.</p>
  
  <p>Simplified Demo is here:</p>
  
  <p>BaseRequest.h</p>
  
  <pre><code>@interface BaseRequest
  
  @property (nonatomic,retain) id&lt;BaseParams&gt; params;
  
  @end
  
  
  @protocol BaseParams &lt;NSObject&gt;
  
  - (NSMutableDictionary *)getParamsDict;
  
  @end
  </code></pre>
  
  <p>DiagramRequest.h</p>
  
  <pre><code>@interface DiagramRequest : BaseRequest
  
  //warning: Property type 'DiagramParams *' is incompatible with type 'id&lt;BaseParams&gt;' inherited from 'BaseRequest'
  @property (nonatomic,retain) DiagramParams *params;
  
  @end
  
  
  @interface DiagramParams : NSObject &lt;BaseParams&gt;
  
  @property (nonatomic) int id;
  @property (nonatomic,retain) NSString *city;
  
  - (NSMutableDictionary *)getParamsDict;
  
  @end
  </code></pre>