Manejando las excepciones generadas durante el método llamado a través de NSObject's performSelectorOnMainThread: withObject: waitUntilDone:
-
03-07-2019 - |
Pregunta
¿Qué sucede con las excepciones generadas en myMethod:
si se invoca mediante el performSelectorOnMainThread de NSObject: withObject: waitUntilDone:
?
En particular, ¿puedo capturarlos en el alcance de la llamada a performSelectorOnMainThread
de esta manera ...
@try {
[self performSelectorOnMainThread:@selector(myMethod) withObject:nil waitUntilDone:YES];
} @catch(NSException *e) {
//deal with exception raised in myMethod here??
}
Me doy cuenta de que la semántica de esto es extraña si waitUntilDone es NO
.
Solución
No podrás atraparlos así. Cocoa puede capturar y registrar las excepciones en la consola, pero no las volverá a elevar en el subproceso que se llama -perform. En su lugar, podría atraparlos en -myMethod: (o un contenedor que llame a -myMethod :) y hacer que los almacene en algún lugar donde su otro hilo los pueda leer.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow