Из того, что я понимаю, instancetype объявляет компилятору, что возвращаемый тип метода такой же, как класс, получающий сообщение.
Традиционно я всегда объявлял свои инициализаторы singleton с именем класса, явно заданным как возвращаемый тип:
@interface MyClass : NSObject
+ (MyClass *)sharedInstance;
@end
Теперь мне интересно, нужно ли вместо этого использовать instancetype:
@interface MyClass : NSObject
+ (instancetype)sharedInstance;
@end
В итоге результат тот же, мне просто интересно, есть ли причина использовать один или другой здесь?