为什么initWithCoder不返回instancetype?

时间:2015-08-21 14:41:48

标签: objective-c cocoa nscoding instancetype

似乎Objective-C中的大多数init方法现在倾向于返回instancetype而不是id。请参阅[UIView initWithFrame:][UIViewController initWithNibName:bundle:][NSArray init]和兄弟姐妹等。initWithCoder使用id。为什么是这样?它还没有更新吗?或者它有必要是id吗?

1 个答案:

答案 0 :(得分:1)

尚未更新。您仍然可以使用实例类型对其进行编码。

     - (instancetype)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        //...
    }
    return self;
}