instanceType 和 id 区别

参考博文: instanceType & id 区别

关联返回类型(related result types)

根据Cocoa的命名规则,满足下述规则的方法:

  • 类方法中,以 alloc 或 new 开头
  • 实例方法中,以 autorelease ,init ,retain 或 self 开头

会返回一个方法所在类类型的对象,这些方法就被称为是关联返回类型的方法。换句话说,这些方法的返回结果以方法所在的类为类型

instancetype和id的异同

  • 相同点
    都可以作为方法的返回类型
  • 不同点
  1. instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型对象
  2. instancetype只能作为返回值,不能像 id 那样作为参数

总结:

instancetype 的作用,就是使那些非关联返回类型的方法返回所在类的类型!

你可能感兴趣的:(instanceType 和 id 区别)