ARC __bridge lançou Block_copy & Block_release
Por alguma razão, eu quero que um bloco seja executado durante a próxima iteração do loop de execução, então criei:
typedef void (^resizer_t)() ;
- (void) applyResizer: (resizer_t) resizer {
resizer() ;
Block_release(resizer) ;
}
- (void) usage {
...
resizer_t resizer = ^() {
// stuff
} ;
[self performSelectorOnMainThread:@selector(applyResizer:)
withObject:(__bridge id) Block_copy((__bridge void *) resizer)
waitUntilDone:NO] ;
}
Não é irônico eu ter que lançar para anular * o argumento paraQuadr_cópia de Por que o compilador está satisfeito com meu Block_release quando engasga com Block_copy sem a ponte void * cast?O código parece funcionar, não detectei um vazamento nem um lançamento prematuro, mas estou um pouco intrigado com a sintaxe ...