ARC __bridge cast Block_copy & Block_release
Por alguna razón, quiero que se ejecute un bloque durante la próxima iteración del ciclo de ejecución, así que se me ocurrió:
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] ;
}
¿No es irónico que tenga que lanzar para anular * el argumento aBloquea_Copiar ¿Por qué el compilador está contento con mi Block_release cuando se ahoga en Block_copy sin el bridge void * cast?El código parece funcionar, no detecté una fuga ni una liberación prematura, pero estoy un poco desconcertado por la sintaxis ...