Singletonはちょいちょい使うのでsnippet化しているのですが(ソラで書けないよ)
今のXcodeの環境に入れていなかったので検索してみたら
ちょっと見慣れない記述がありました。
+ (instancetype)sharedInstance { static id sharedInstance = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ sharedInstance = [[self alloc] init]; }); return sharedInstance; }
一見いつものやつですが、
instancetypeとは
戻り値がinstancetypeと記述されています。
いつも戻り値はidで書いていました。
(ちなみにNSNotificationCenterなどもinstancetypeで記載されています。)
こちらがとても分かりやすいのですが
instancetype で generics の夢をみる? | Cocoaの日々情報局
コンパイラで型チェックしてくれるようです。
Singletonのインスタンスの場合にidで受けるように書くことはほとんどいないので
このケースでは実益は少なそうですが、今後利用するようにしてみます。
ちなみに、戻り値のみに利用できるようです。