2010-04-05 10 views
0

Mon application fonctionne très bien dans le simulateur, mais quand je le lance sur mon téléphone je reçois cette erreur:sélecteur non reconnu envoyé à l'instance

2010-04-05 21:32:45.119 Top Banana[119:207] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[MethodViewController setReferringObject:]: unrecognized selector sent to instance 0x16e930'

Il arrive ici:

-(void)method { 

[UIView beginAnimations:@"View Flip" context:nil]; 
[UIView setAnimationDuration:0.50]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 

[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO]; 
MethodViewController *methodViewController = [[MethodViewController alloc] initWithNibName:@"MethodViewController" bundle:0]; 

NSManagedObject *selectedObject = self.referringObject; 
methodViewController.referringObject = selectedObject; 

[self.navigationController pushViewController:methodViewController animated:NO]; 

methodViewController.title = @"Method"; 

[UIView commitAnimations]; 

[MethodViewController release]; 
} 

Il se bloque sur ce ligne:

methodViewController.referringObject = selectedObject; 

Je ne sais pas comment résoudre ce que cela fonctionne dans le simulateur, je suis sûr qu'il est assez basique pour fixer, tout l'aide sera appréciée.

+1

Est-ce que MethodViewController possède une propriété referencedObject? – Chuck

+0

Oui, ça marche dans le simulateur sans erreur, je ne comprends pas pourquoi ça ne marche pas au téléphone. – iamsmug

+0

Affiche la ligne de code avec la définition '@ property'. –

Répondre

1

Vous ne savez pas pourquoi cela se produit, mais ce test peut vous fournir des informations de diagnostic utiles: Définissez un point d'arrêt sur la ligne qui plante, et Construire et déboguer sur votre téléphone. Tapez ensuite "po methodViewController" à l'invite gdb pour savoir quel type d'objet pointe vers cette variable lors de l'exécution. Ensuite, essayez la même chose dans le simulateur et comparez. Vous obtenez probablement un objet de la mauvaise classe sur le téléphone pour une raison quelconque. Connaître sa classe réelle aidera probablement.

à pailles Saisissant, mais voici quelques autres choses à vérifier: la phase de

  1. Assurez-vous MethodViewController.xib dans votre projet et inclus dans les « ressources Bundle copie » de votre cible. Parfois, le simulateur parvient à trouver par magie des ressources sur votre système de fichiers qui n'ont pas été correctement incluses dans votre projet.

  2. Assurez-vous que vous n'avez pas une ancienne copie de MethodViewController.xib assis dans un autre répertoire sous votre projet.

  3. Assurez-vous que le propriétaire de votre fichier dans MethodViewController.xib est défini sur MethodViewController.

  4. Essayer Créer -> Nettoyer toutes les cibles.

+0

Merci pour votre message, il semblait juste se réparer, bizarre! – iamsmug

Questions connexes