Aplicación Delegado dar la advertencia: 'id ' no se ajusta a la del protocolo 'UIAlertViewDelegate'
-
25-09-2019 - |
Pregunta
Actualmente estoy usando un UIAlertView en el arranque en mi aplicación con la UIAlertViewDelegate. Todo funciona bien. El único problema es que me sale el aviso "tipo 'id' no se ajusta a la del protocolo 'UIAlertViewDelegate'" cada vez que me refiero a la App Delegado, y me da alrededor del 32 advertencias.
¿Alguien puede arrojar algo de luz sobre por qué estoy recibiendo esta advertencia y cómo puede satisfacerla?
Gracias de antemano!
Solución
Me asumiendo delegado de la aplicación es su visión de alerta delegado?
Si es así, es necesario decirle al compilador que en la declaración del delegado de la aplicación. De esta manera:
@interface SomeAppDelegate : NSObject <UIApplicationDelegate, UIAlertViewDelegate> {
}
// ... rest of interface
@end
Y luego también hay que poner en práctica los métodos necesarios.
EDIT: Pensando en ello más, creo que probablemente se está perdiendo un molde cuando se hace referencia al delegado de la aplicación. Así que hay algo como esto:
MyAppDelegate* appDelegate = [[UIApplication sharedApplication] delegate];
// what you want is:
MyAppDelegate* appDelegate = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
Otros consejos
No podría existir en el hilo principal, intente
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"My Title"
message:@"My message"
delegate:self cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];