Двойной указатель как параметр блока Objective-C

Возможно ли (и если да, безопасно) создать / использовать блок, который принимает двойной указатель в качестве аргумента?

Например:

- (void)methodWithBlock:(void (^)(NSError **error))block;

Дополнительный контекст, исследование и вопросы:

Я использую ARC.Когда я объявляю метод выше и пытаюсь вызвать его, XCode автоматически завершает вызов моего метода следующим образом:[self methodWithBlock:^(NSError *__autoreleasing *error) {}]; Что значит__autoreleasing значит здесь и почему это добавляется? Я предполагаю, что это как-то связано с ARC.Если этоявляется возможно и безопасно, может ли указатель все еще разыменовываться в блоке, как это было бы где-нибудь еще?В общем, каковы важные различия между выполнением того, что я описываю, и простой передачей двойного указателя в качестве параметра метода (например,- (void)methodWithDoublePointer:(NSError **)error;)? Какие особые соображения, если таковые имеются, следует принимать во внимание (опять же, если предположить, что это вообще возможно)?

Ответы на вопрос(3)

Ваш ответ на вопрос