-(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。()