[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判断父类是否初始化成功,从而进行合理地处理,以便起到容错效果。