参考来自:http://blog.csdn.net/kuizhang1/article/details/18048829
两句话总结:
如果是关联返回值类型都一样;如果是非关联返回值类型就instancetype好,能返回对象本身而id只能返回id类型。
instancetype不能作为行参的类型只能作返回值。
何为:关联返回类型(related result types)
根据Cocoa的命名规则,满足下述规则的方法:
1、类方法中,以alloc或new开头。
2、实例方法中,以autorelease,init,retain或self开头。
都会返回一个和方法所在类同样类型的对象,这些方法就被称为是关联返回类型的方法。换句话说,这些方法的返回结果的类型和方法所在的类的类型是一样的
比如:
- (NSArray *)init; 返回的是NSArray 当前类型也是NSArray 类型是一样的,属于关联类型。
@interface NSArray : NSObject - (NSArray *)init; @end