问题
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;
}
来源:https://stackoverflow.com/questions/32143209/why-does-initwithcoder-not-return-instancetype