OC中instancetype和id的区别

1. 相同点


  • 都可以作为方法的返回类型,省去具体类型,提高代码的通用性。

2. 不同点


  1. instancetype会自动识别类型告诉编译器当前的类型,id只能返回未知类型的对象,调用任何方法不会给出错误提示。

  2. instancetype只能作为返回值,不能像id那样作为参数

  3. 对于init方法,id和instancetype是没有区别的。因为编译器会把id优化成instancetype。当明确返回的类型就是当前Class时,使用instancetype能避免id带来的编译不出的错误情况。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 相同点:instanceType和id都是作为方法的返回类型而被使用。 不同点: 1.instancetype可以...
    zero_zql阅读 3,490评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,558评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,963评论 18 399
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,874评论 6 13
  • volatile关键字的作用、原理 在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题...
    自然之秋阅读 3,471评论 0 0