UIApplication erreur sharedAppication: programme semble accéder à un fichier incorrect
-
21-09-2019 - |
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."
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;
}