iOS开发子类初始化时为什么要调用self = [super init]]

[self class]、[self superclass]、[super class]分别表示什么意思?
  • [self class]表示当前类、self是指向自己的指针,可以打印出来
  • [self superclass] 表示当前类的父类
  • [super class]:首先super不是指针,只是关键字,不能打印出来;其次这个[super class]表示的是当前对象,而且super可以用来调用父类方法,比如[super init],表示当前类对象调用父类初始化方法。
因为子类继承自父类,需要获得父类的实例和方法等,所以初始化子类之前要先保证父类已经初始化完毕,防止出错。当调用self = [super init]方法时,如果父类初始化不成功,那么会返回nil,所以可以根据self是否为nil判断父类是否初始化成功,从而进行合理地处理,以便起到容错效果。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容