Manejando las excepciones generadas durante el método llamado a través de NSObject's performSelectorOnMainThread: withObject: waitUntilDone:

StackOverflow https://stackoverflow.com/questions/155171

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 .

¿Fue útil?

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
scroll top