为什么 Apple 的方法不NSError**
声明为NSError * __autoreleasing *
?
过渡到 ARC 发行说明似乎表明它们应该是 (?)。
例如,NSFileManager.h 中的所有例程。但我实际上没有看到任何使用过渡到 ARC 发行说明中所述的 Apple 标头:
and the method declaration would typically be:
-(BOOL)performOperationWithError:(NSError * __autoreleasing *)error;
可能是因为支持所有NSError * error = nil;
声明都暗示的遗留代码库,strong
所以如果Apple放在__autoreleasing
那里,__autoreleasing
每次都会导致创建一个临时局部变量?我唯一能想到的。