相同点:
instancetype 和 id 都是万能指针,指向对象,可以表示任何对象类型。
不同点:
1.instancetype的作用,就是使那些非关联返回类型的方法返回所在类的类型!在编译期能够确定对象的类型,就可以进行类型检测(Type Check)。但id在编译的时候不能判断对象的真实类型,只能返回未知类型的对象。
2.id可以用来定义变量,可以作为返回值类型,可以作为形参类型,instancetype只能作为返回值类型
注意:以后凡是自定义构造方法,返回值类型尽量使用instancetype,不要使用id
- (instancetype)init
{
if (self = [super init]) {
//
}
return self;
}
网友评论