原文地址:http://blog.csdn.net/wzzvictory/article/details/16994913
首先要弄清楚两者的区别需要说清楚两个概念:关联返回类型和非关联返回类型。
根据Cocoa的命名规则,满足下述规则的方法:
1、类方法中,以alloc或new开头
2、实例方法中,以autorelease,init,retain或self开头
会返回一个方法所在类类型的对象,这些方法就被称为是关联返回类型的方法。
非关联返回类型顾名思义则是说返回类型不定。
instancetype的作用就是用来指定返回类型为方法所在类的类型。
二者的异同点:
1、相同点:都可以作为返回类型
2、不同点:1)id可以作为方法的参数,instancetype不行
2)instancetype可以返回和方法所在类类型相同的对象,而id只能返回未知类型的对象。