UIApplication sharedAppication error: programa parece ser el acceso a archivo incorrecto
-
21-09-2019 - |
Pregunta
en mi aplicación MainViewController, necesito acceder a las variables a partir de dos clases diferentes. una de las clases es el AppDelegate y el otro es el FlipsideViewController. la forma en que accedió a estas Fue a través de este código:
-(void)someMethod
{
MyApplicationAppDelegate *appDelegate = (MyApplicationAppDelegate *)[[UIApplication sharedApplication] delegate];
FlipsideViewController *viewController = (FlipsideViewController *)[[UIApplication sharedApplication] delegate];
luego tengo una matriz accedo desde mi aplicación delegue, y algunas variables de instancia que devuelven valores desde una instancia de UISwitch del flipsideViewController:
NSMutableArray* array = [[NSMutableArray alloc] initWithArray:(NSMutableArray *)appdelegate.originalArray];
for (id element in array)
{
if ([[element attribute] isEqualToString:@"someAttribute"] && [viewController.switch1 isOn] == YES)
{
//preform function
}
}
sigo recibiendo el mensaje de error "- [switch1 MyApplicationAppDelegate]: Selector no reconocido enviado a la instancia de terminación debido a la aplicación de excepciones no detectadas."
Solución
[[UIApplication sharedApplication] delegado]; siempre devolverá el (Singleton) instancia de la clase MyApplicationAppDelegate
y no se puede simplemente echarlo a FlipsideViewController*
. para acceder valor flipsidecontroller (suponiendo que se almacena en su AppDelegate) puede definir una propiedad y lo llaman:
-(void)somemethod{
MyApplicationAppDelegate *appDelegate = (MyApplicationAppDelegate *)[[UIApplication sharedApplication] delegate];
FlipsideViewController *viewController = appDelegate.flipsideController;
}