title: Purpose of 'instancetype' keyword in 'objectWith' methods?
body: <p>Recent Objective-C compilers introduce the 'instancetype' keyword, which among other things can be used to provide typed collections. . . </p>
  
  <p>I saw another purpose of instancetype, which was using it in 'objectWith' type methods on classes. For example: </p>
  
  <pre><code>@interface Car
  
      +(instancetype)carWithWheels:(NSArray*)wheels;
  
  @end
  </code></pre>
  
  <p>The justification was that the compiler will do type checking for initWith methods, but not for 'objectWith' methods. </p>
  
  <p>Besides being potentially easier to type, what is the benefit of using 'instancetype' in place of the actual class-name? Eg: </p>
  
  <pre><code>@interface Car
  
      +(Car*)carWithWheels:(NSArray*)wheels;
  
  @end
  </code></pre>