2010-03-18 8 views
-2

J'ai eu d'énormes problèmes avec cela, donc je dessinais un diagramme ...IBOutlet est NIL lorsque vous utilisez Forward Declarations pour appeler une classe?

alt text http://tomsfil.es/7bdead0a.png

Je reçois avec succès à la classe A - MÉTHODE B, mais à ce moment-là, IBOutlet Z est nul? :( Toutes les idées?

notes Quelqu'un m'a dit que ce pourrait être un Overrelease et d'utiliser NSZombieEnabled mais qui me confondre

+0

Je ne comprends pas la signification de votre diagramme. Vous voulez expliquer avec des mots les interactions? – zneak

+0

Il n'y a pas de question à poser ici; pas de code et l'image ne s'affiche pas. Besoin de plus d'informations. – bbum

+0

alors quelle est la question ici? vous voulez des idées? comment arriver à A :: B de Z? – stefanB

Répondre

1

Il est une question de quand vous appelez la classe. Juste après avoir créé un Le contrôleur de vue avec initWithNibName, rien n'est encore câblé - c'est seulement après la création de la vue que les IBOutlets sont créés et câblés.

Une astuce est que vous pouvez simplement demander au contrôleur de vue pour .view, comme ceci:

myViewController.view; 

Ensuite, la vue sera créée et l'IBOutlet existera. Cependant, une meilleure méthode consiste à créer des propriétés sur le contrôleur de vue que vous définissez, puis dans viewDidLoad ou dans viewWillAppear, vous utilisez ces propriétés pour définir des valeurs pour vos prises.