¿Por qué demorar tanto time un UIAlertView?

Tengo un código aquí para una aplicación de iOS que estoy desarrollando, y por alguna razón, lo que parece una tarea rápida y simple lleva a mi iPhone 4S un segundo completo o más por hacer, todo el time.

El context es este … Tengo una window emergente de 2 botones ActionSheet, y si el usuario toca uno de los botones, la aplicación parece detenerse durante aproximadamente un segundo. Aquí está el código:

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 0) { UIAlertView* newTimerAlertView = [[[UIAlertView alloc] initWithTitle:@"Create New Timer" message:@"Enter a name for your new indicator" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Create", nil] autorelease]; newTimerAlertView.tag = kNewTimer; newTimerAlertView.alertViewStyle = UIAlertViewStylePlainTextInput; [newTimerAlertView show]; } else if (buttonIndex == 1) { NSLog(@"ActionSheet button 2 tapped"); UIAlertView* newTallyAlertView = [[[UIAlertView alloc] initWithTitle:@"Create New Tally" message:@"Enter a name for your new indicator" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Create", nil] autorelease]; newTallyAlertView.tag = kNewTally; newTallyAlertView.alertViewStyle = UIAlertViewStylePlainTextInput; [newTallyAlertView show]; NSLog(@"end"); } } 

Centrándose en el segundo button para simplificar (aunque el primer button se comporta de la misma manera), el logging se ve así:

 2012-01-25 20:35:46.330 ...[177:707] ActionSheet button 2 tapped 2012-01-25 20:35:47.194 ...[177:707] end 2012-01-25 20:35:56.154 ...[177:707] ActionSheet button 2 tapped 2012-01-25 20:35:56.180 ...[177:707] end 

Tenga en count que la primera vez que lo intente, en un segundo pasa antes de que el fragment de código termine de ejecutarse, pero la segunda vez (y todas las veces posteriores) el código solo tarda unos milisegundos.

¿Hay algo mal con el código? o tengo que simplemente compensar el retraso con una vista de progreso?

¡Gracias!

EDITAR: Esto solo ocurre en los dispositivos cuando se ejecuta la aplicación desde Xcode … ¿tal vez tiene que ver con el depurador?

Ahora que si la alerta no está en el hilo principal, pueden retrasarse

Xcode no ralentiza las vistas de alerta en ninguna situación que haya encontrado.

Su código se ve muy claro, por lo que sospecho que hay algo sucediendo fuera del fragment que publicó.

Veo que hace reference a los timeres … ¿es posible que esta sea una manifestación de otra cosa, como una callback del timer, que se vuelve salvaje en el hilo principal? Intente usar el Time Profiler o los instrumentos System Trace para descubrir qué está bloqueando (algo ciertamente es).