instanceType与id的用法和区别
一.什么时候用instancetype
1.instancetype只能作为方法的返回值类型,不能修饰参数;
2.当一个类中的方法返回相同类的实例的时候,该方法的返回值类型适合使用instancetype;尤其是类的简易构造方法应该使用instancetype作为返回类型,initXXX方法返回id类型时,编译器会对initXXX方法做优化,实际上返回的也是instancetype;
二.使用instancetype的优点
1.返回类型是instancetype的方法,编译器会知道该方法应该返回什么类型,编译器也会做正确性检查,如果使用id则不会。(例如:如果使用该方法返回的对象调用了一个该类没有实现的方法,此时编译器会做出警告。)
2.编译器提前暴露问题,减少运行时错误。
三.instancetype与id的区别
1.instancetype不能修饰参数,id可以修饰参数;
2.instancetype修饰只能修饰方法的返回类型,并且该方法返回的是相同类的实例;id是动态类型可以作为所有方法的返回类型,用法灵活(根据具体情况来定)。

浙公网安备 33010602011771号