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."

¿Fue útil?

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;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top