码迷,mamicode.com
首页 > 其他好文 > 详细

OC中instanceType和id的区别

时间:2015-09-17 13:31:55      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

      今天在学习oc的过程中遇到关于instanceType和id的问题不太明白。查了一些资料后,总结它们两个的区别和联系主要有以下几点:

      相同点:instanceType和id都是作为方法的返回类型而被使用。

 

 

      不同点:

       1.instancetype可以返回和方法所在类相同类型的对象,id返回的类型只能是未知类型的对象;

          对于简易构造函数,用instancetype更好一点,因为编译器因此会知道返回的是什么类型的方法对象,而用id则不会,它只会返回未知类型的对象;

       2.instancetype在错误检查机制上更优于id,由于instancetype能够在无关联返回类型中返回对象的类型,因此更利于开发者检测到无关联返回类型中的错误。而id返回的是未知类型,在无关联返回类型中检错时没有instancetype更易于检测错误。

ps:关联返回类型:能够返回一个方法所在类型的对象;

技术分享

     非关联返回类型:无法返回一个方法所在类型的对象;

技术分享

      3 instancetype作用:(这个作者写的很好,顺便转过来!)

技术分享

 
 

 

OC中instanceType和id的区别

标签:

原文地址:http://www.cnblogs.com/moxuexiaotong/p/4815886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!