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是动态类型可以作为所有方法的返回类型,用法灵活(根据具体情况来定)。

posted @ 2014-04-18 23:10  xiaxl  阅读(568)  评论(0)    收藏  举报