Podwójny wskaźnik jako parametr bloku Objective-C

Czy jest możliwe (a jeśli tak, to bezpieczne) utworzenie / użycie bloku, który przyjmuje podwójny wskaźnik jako argument?

Na przykład:

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

Dodatkowy kontekst, badania i pytania:

Używam ARC.Kiedy deklaruję powyższą metodę i próbuję ją wywołać, XCode automatycznie uzupełnia wywołanie metody w następujący sposób:[self methodWithBlock:^(NSError *__autoreleasing *error) {}]; Co robi__autoreleasing znaczy tutaj i dlaczego jest dodawany? Przypuszczam, że ma to coś wspólnego z ARC.Jeśli tojest możliwe i bezpieczne, czy wskaźnik nadal może być wyodrębniony w bloku, tak jak w innym miejscu?Ogólnie rzecz biorąc, jakie są ważne różnice między robieniem tego, co opisuję, a zwykłym przekazaniem podwójnego wskaźnika jako parametru metody (np.- (void)methodWithDoublePointer:(NSError **)error;)? Jakie szczególne względy, jeśli w ogóle, należy wziąć pod uwagę (zakładając, że jest to w ogóle możliwe)?

questionAnswers(3)

yourAnswerToTheQuestion