Последние компиляторы Objective-C представляют ключевое слово "instancetype", которое, среди прочего, может использоваться для предоставления типизированных коллекций.,
Я видел другую цель instancetype, которая использовала его в методах типа objectWith на классах. Например:
@interface Car
+(instancetype)carWithWheels:(NSArray*)wheels;
@end
Обоснование заключалось в том, что компилятор будет выполнять проверку типов для методов initWith, но не для методов 'objectWith'.
Кроме того, чтобы быть более легким в использовании, в чем преимущество использования "instancetype" вместо фактического имени класса? Например:
@interface Car
+(Car*)carWithWheels:(NSArray*)wheels;
@end