ARC com blocos e reter ciclos

Eu tenho uma classe que contém um bloco como uma propriedade de objeto:

@property (nonatomic, readwrite, copy) SFFailureBlock failureBlock;

onde SFFailureBlock:

typedef void (^SFFailureBlock)(NSError *error);

Eu tenho uma operação também declarada como uma propriedade de objeto (AFHTTPRequestOperation) e eu quero chamar o bloco de falha assim que for concluído.

    [self.operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    __weak NSError *error = [NSError errorWithDomain:@"com.test" code:100 userInfo:@{@"description": @"zero results"}];
    failureBlock(error);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"nothing");
}];

Eu recebo um aviso de compilador "Capturar 'auto' fortemente neste bloco provavelmente levará a um ciclo de retenção". Eu pesquisei na internet, mas não consegui encontrar uma solução decente a respeito de por que isso leva a um ciclo de retenção. Eu não estou chamando 'eu' dentro do bloco em qualquer lugar.

Outra coisa estranha é que, se eu escrever 'self.failureBlock (error)', o compilador não me dará nenhum aviso!

Alguém pode me explicar o que está acontecendo? Eu devo estar seriamente perdendo alguma coisa nas regras de gerenciamento de memória do ARC, mas não consigo entender.

questionAnswers(1)

yourAnswerToTheQuestion