Question

dans ma mise en œuvre de MainViewController, je dois accéder à des variables de deux classes différentes. l'une des classes est le AppDelegate et l'autre est le FlipsideViewController. la façon dont je ont accédé à ces était par ce code:

-(void)someMethod
{
MyApplicationAppDelegate *appDelegate = (MyApplicationAppDelegate *)[[UIApplication sharedApplication] delegate];
FlipsideViewController *viewController = (FlipsideViewController *)[[UIApplication sharedApplication] delegate];

alors j'ai un tableau je avoir accès à mon délégué de l'application, et certaines variables d'instance qui renvoient des valeurs d'une instance de UISwitch du 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
    }
}

Je continue à recevoir le message d'erreur "- [MyApplicationAppDelegate switch1]: sélecteur non reconnu envoyé à l'instance en raison de mettre fin à l'application exception non interceptée."

Était-ce utile?

La solution

[[UIApplication sharedApplication] délégué]; sera toujours le retour (singleton) instance de classe MyApplicationAppDelegate et vous ne pouvez pas simplement le jeter aux FlipsideViewController*. pour accéder à la valeur de flipsidecontroller (en supposant qu'il est stocké dans votre appdelegate), vous pouvez définir une propriété et l'appeler:

-(void)somemethod{
     MyApplicationAppDelegate *appDelegate = (MyApplicationAppDelegate *)[[UIApplication sharedApplication] delegate];
     FlipsideViewController *viewController = appDelegate.flipsideController;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top