苹果倾向于给出这样的例子:
NSError __strong *error = nil;
要么
-(BOOL)performOperationWithError:(NSError * __autoreleasing *)error;
如果可以这样做,我会发现它更具可读性和逻辑性:
__strong NSError *error = nil;
-(BOOL)performOperationWithError:(__autoreleasing NSError**)error;
快速测试表明,编译器没有在抱怨我的编写方式。无论如何我是做错了,还是这样写可以吗?
最佳答案
不,所有权限定符的位置根本不重要。由于所有权限定符仅对指针到对象的类型有意义,因此您的意图永远不会模棱两可。无论您将它放在哪里,编译器都可以轻松弄清楚您的意图是什么,因此ARC正是这样做的。
如果您有权访问iOS Apple开发者论坛,则可以在https://devforums.apple.com/message/458606上看到我向苹果工程师问同样的问题的地方。
关于objective-c - ARC所有权限定词的位置重要吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8864742/