标签:
在接触OC语言一段时间后,我们大家都知道未知类型的对象可以用 id 表示,那么 instancetype 是用来干嘛的?
1.instancetype的作用
就是使那些非关联返回类型的方法返回所在类的类型
a.能够确定对象的类型,能够帮助编译器更好的为我们定位代码书写问题
b.编译器能够根据返回的数据类型检测是否实现方法,有利于开发者在编译阶段发现错误。
3.instancetype和id的异同
都可以作为方法的返回类型
②instancetype只能作为返回值,不能像id那样作为参数
3.总结:虽然用instancetype代替id作为返回值的确没有技术上的好处,这是因为编译器自动将id转化成了instancetype。初学者会以为init返回的值类型是id,其实编译器返回的是instancetype。
最后借用别人总结的九个字去概括上面所有的结论,使用instancetype有三点好处:明确性 程式化 一致性。
对于Objective-C初学者而言,用instancetype和id来定义一个简易的构造函数,到底区别在哪?
标签:
原文地址:http://www.cnblogs.com/mengjinxiang/p/5531439.html