instancetyoe 是 clang3.5开始提供的一个关键字,和id一样,都返回oc未知类型的对象。
不同点在于:
1.instancetype 使非关联的返回类型的方法返回当前的类的类型,如
@interface NSString
+ (instancetype)default;
@end
这里返回的就是NSString类型,如果用id关键字,则没有具体类型。
这样做的优点在于,书写代码过程中,如果接收类型不是方法类的类型,则会有相应提示,便于检查。
2.instancetype不能做为参数,只能作为返回值。而id没有限制。