参考博文🔗: instanceType & id 区别
关联返回类型(related result types)
根据Cocoa的命名规则,满足下述规则的方法:
- 类方法中,以 alloc 或 new 开头
- 实例方法中,以 autorelease ,init ,retain 或 self 开头
会返回一个方法所在类类型的对象,这些方法就被称为是关联返回类型的方法。换句话说,这些方法的返回结果以方法所在的类为类型
instancetype和id的异同
- 相同点
都可以作为方法的返回类型 - 不同点
- instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型对象
- instancetype只能作为返回值,不能像 id 那样作为参数
总结:
instancetype 的作用,就是使那些非关联返回类型的方法返回所在类的类型!