私が理解していることから、instancetype は、メソッドの戻り値の型がメッセージを受信するクラスと同じであることをコンパイラに宣言します。
伝統的に、戻り値の型として明示的に設定されたクラス名を使用して、シングルトン初期化子を常に宣言してきました。
@interface MyClass : NSObject
+ (MyClass *)sharedInstance;
@end
次のように、代わりに instancetype を使用する必要があるかどうか疑問に思っています。
@interface MyClass : NSObject
+ (instancetype)sharedInstance;
@end
最終的に結果は同じですが、ここでどちらかを使用する理由があるかどうか疑問に思っていますか?