Como usar palavras-chave Objective-C não nulas e anuláveis no método de API baseado em bloco

Considere o seguinte método

- (void)methodWithArg:(NSString *)arg1 andArg:(NSString *)arg2 completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler;

Com o novononnull enullable palavras-chave de anotação podemos enriquecê-lo da seguinte maneira:

- (void)methodWithArg:(nonnull NSString *)arg1 andArg:(nullable NSString *)arg2 completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler;

mas também recebemos este aviso:

O ponteiro está ausente em um especificador de tipo de nulidade (__nonnull ou __nullable)

Refere-se ao terceiro parâmetro (o bloco um).

odocumentação não cobre exemplos de como especificar a nulidade dos parâmetros do bloco. Ele afirma literalmente

Você pode usar os formulários não sublinhados, anuláveis e não nulos, imediatamente após um parêntese aberto, desde que o tipo seja um objeto simples ou um ponteiro de bloco.

Tentei colocar uma das duas palavras-chave do bloco (em qualquer posição) sem sorte. Também tentei as variantes prefixadas de sublinhado (__nonnull e__nullable)

Portanto, minha pergunta é: como posso especificar a semântica de nulidade para parâmetros de bloco?

questionAnswers(6)

yourAnswerToTheQuestion