2010-08-02 9 views
0

Je suis un peu confus comment mettre en place une classe qui est deux étapes en dessous de la plus haute.Comment configurer une classe deux étapes vers le bas?

Par exemple, disons que j'ai un jeu appelé BoardGame. Un des paramètres de numberOfSquares.

Les classes sont configurés comme ceci:

BoardGameSetupViewController > BoardGamePlayViewController > GameEngine

BoardGameSetupViewController crée une instance de BoardGamePlayViewController après le nombre de places a été choisi. BoardGamePlayViewController a la classe GameEngine en tant que @property qui a été @synthesised.

Alors, comment est-ce que je pourrais configurer ce GameEngine directement à partir de BoardGameSetupViewController? Pour configurer le numberOfSquares par exemple? Donc, dans BoardGameSetupViewController, je veux définir les propriétés du moteur, mais elles ne semblent pas être transmises.

BoardGamePlayViewController *boardGamePlayViewController = [[BoardGamePlayViewController alloc] initWithNibName:@"BoardGameView" bundle:nil]; 

// this line doesn't work 
boardGamePlayViewController.gameEngine.numberOfSquares = 12; 

Répondre

3

Vous devez d'abord créer une instance de GameAEngine beofre vous faites de l'affectation boardGamePlayViewController.gameEngine.numberOfSquares = 12; Donc,

GameEngine *gameEngine = [[GameEngine alloc] init]; 
boardGamePlayViewController.gameEngine = gameEngine; 
boardGamePlayViewController.gameEngine.numberOfSquares = 12; 

devrait fonctionner.