UIAlertView se muestra desde el subprocess de background y sin delegado crea EXC_BAD_ACCESS

Aquí está mi código:

#ifdef DEBUG UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"ERROR" message:@"JSON Parsing Error" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; [alertView release]; #endif 

Este código se ejecuta en un subprocess de background (responsable del análisis), y el error solo ocurre en cualquier otro momento. ¿Alguna idea sobre cuál es el problema aquí?

No te metas con la interfaz de usuario del hilo de background. Cree un método y llame a ese método en el hilo principal:

 [someObject performSelectorOnMainThread:@selector(showDebug:) withObject:@"JSON Parsing Error" waitUntilDone:YES]; 

No debe ejecutar el código de la interfaz de usuario en un hilo por separado.

Si su aplicación tiene una interfaz de usuario gráfica, se recomienda que reciba events relacionados con el usuario e inicie actualizaciones de la interfaz desde el hilo principal de su aplicación. Este enfoque ayuda a evitar problemas de synchronization asociados con el event handling events del usuario y el dibujo del contenido de la window. Algunos frameworks, como Cocoa, generalmente requieren este comportamiento, pero incluso para aquellos que no lo hacen, mantener este comportamiento en el hilo principal tiene la ventaja de simplificar la lógica para administrar su interfaz de usuario.

Hilos y su interfaz de usuario