根据clang 文档,当返回的方法是以 or开头的类方法或以、、或开头的实例方法时,id
隐式知道该方法返回。instancetype
new
alloc
retain
autorelease
init
self
为了一致性起见,这些方法是否也应该写成instancetype
在新代码中显式返回?
- (instancetype)init {
self = [super init];
if (self) {
// perform initialization
}
return self;
}
是否有任何文件说明为什么或为什么不,或任何推理?似乎在这种情况下,它对编译器的解释完全相同。