是否有可能(如果是的话,安全)创建/使用一个将双指针作为参数的块?
例如:
- (void)methodWithBlock:(void (^)(NSError **error))block;
其他背景、研究和问题:
- 我正在使用ARC。
- 当我声明上面的方法并尝试调用它时,XCode 会自动完成我的方法调用,如下所示:这里是
[self methodWithBlock:^(NSError *__autoreleasing *error) {}];
什么__autoreleasing
意思,为什么要添加它?我认为它与ARC有关。 - 如果这是可能且安全的,指针是否仍然可以在块中被取消引用,就像在其他任何地方一样?
- 一般来说,执行我所描述的操作与简单地将双指针作为方法参数(例如
- (void)methodWithDoublePointer:(NSError **)error;
)传递之间的重要区别是什么?应该考虑哪些特殊考虑(如果有的话)(再次假设这是可能的)?