2011-07-29 5 views
0

Je travaille sur l'exercice 3 de CS193p de Stanford (automne 2010). J'ai le code ci-dessous dans une sous-classe UIView:Méthode non appelée

float scale = [self.delegate scaleForGraphView:self]; 

points d'arrêt et NSLogs à l'intérieur scaleForGraphView ne sont jamais déclenchées, mais NSLogs et points d'arrêt à la ligne ci-dessus indiquent qu'il est CHAISE. Quelqu'un peut-il expliquer pourquoi je ne vois pas l'exécution dans la méthode scaleForGraphView?

+0

Normalement, il ne s'agirait pas de devoirs, mais vous avez explicitement déclaré que c'était les devoirs. :) –

Répondre

3

Put in:

NSLog(@"%@", self.delegate); 

Je serais prêt à parier que ce soit:

  1. Il est le mauvais type d'objet
  2. Il est nil
+0

Mon Dieu ce conseil est rapide. Oui, mettre la déclaration NSLog que vous avez suggéré a révélé que self.delegate était nul. Je n'aurais pas pensé à le faire sans votre suggestion, merci. Maintenant, pour comprendre pourquoi il est nul ... –

+0

@Michael Mangold: Quand une méthode ne fait mystérieusement pas quelque chose, il semble que ce soit le cas, c'est une forte preuve que vous avez un zéro là où vous ne l'attendez pas, car rien de tout simplement silencieux ignore tout ce que vous dites. – Chuck

1

Sans plus de code , c'est difficile de répondre, mais il semble que self.delegate soit nul.

Questions connexes