苹果公司通常会给出这样的例子:
NSError __strong *error = nil;
或者
-(BOOL)performOperationWithError:(NSError * __autoreleasing *)error;
我认为如果我这样做,它会更易读、更合乎逻辑:
__strong NSError *error = nil;
-(BOOL)performOperationWithError:(__autoreleasing NSError**)error;
一个快速测试显示编译器对我的写法没有抱怨。不管怎样,我是在做错了吗,还是这样写就可以呢?
const T * *
与T * const *
是不同的,因此为什么在__autoreleasing
上做错呢,只是因为编译器会修复位置? - CRDconst
的情况下确实有所区别。但在这里,没有。这是一个错误的类比。 - BJ Homer