It seems that most init
methods in Objective-C now tend to return instancetype
instead of id
. See [UIView initWithFrame:]
, [UIViewController initWithNibName:bundle:]
, [NSArray init]
and siblings, etc. But initWithCoder
uses id
. Why is this? Has it just not been updated yet? Or is there a reason it has to be id
?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
It is not updated yet. You can still code it with instance type.
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
//...
}
return self;
}