3

为什么 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每次都会导致创建一个临时局部变量?我唯一能想到的。

4

1 回答 1

5

指向 Objective-C 对象的双指针隐含地__autoreleasingLLVM 规范指定。

于 2013-02-20T19:21:12.227 回答