instancetype 跟 id 的区别

2016-03-28  本文已影响0人  ___Samson

-(instancetype)initWithDict:(NSDictionary*)dict;

+(instancetype)xxxWithDict:(NSDictionary*)dict;

在一些构造方法中返回类型用instancetype 比较好,苹果推荐用。

1、instancetype 编译器可以检测她的真实类型,id类型不能检测

2、instancetype 最为返回类型上跟id 一样可以表示所有类型

3、instancetype 只能作为返回值类型

比如:  id xxx=@“123”;但是不能instancetype xxx = @“123”;

NSString *xxx = [SunModel sunWithDict:dict]; 这样赋值是错误的 ,但是编译器不会知道,因为没有去检测他的真实类型,但是instancetype作为返回值,编译器就会报警告。

!!!!所以以后返回值是任意类型的时候一律用instancetype。()

上一篇下一篇

猜你喜欢

热点阅读