from: 在什么情况下我们需要在ARC下写__autoreleasing所有权限定符?
- ( BOOL ) 保存: ( NSError * __autoreleasing * );
然后编译器必须创建一个临时变量,设置为 __autoreleasing。所以:
NSError * e = nil;
[ database save: &error ];
将转化为:
NSError __strong * error = nil;
NSError __autoreleasing * tmpError = error;
[ database save: &tmpError ];
error = tmpError;
好的,现在转换后的代码似乎工作得很好。最后,我预计它会正常工作,尽管效率“很少”(非常少)。那么为什么还要指定自动发布呢?
更准确地说。我知道__autoreleasing
当我们将指针传递给指针时我们“应该”使用。但是,如果我们得到的唯一结果只是非常轻微的性能提升,那又有什么意义呢?