“La tentative d'utilisation de l'en avant de la classe " Jeu "en tant que super-classe de "MathGame'” en Cocos2d
Je suis en train de faire un Cocos2d jeu pour iphone, et j'ai mon mode de jeu principal, Game
, qui hérite de l' CCLayer
.
Je suis en train de faire un autre mode de jeu, MathGame
, qui hérite de l' Game
, mais lorsque j'essaie de compiler, j'ai cette erreur dans MathGame.h
:
De tenter de l'utiliser avant de la classe " Jeu "en tant que super-classe de "MathGame'
J'obtiens l'erreur, même si la mise en œuvre et l'interface de MathGame
sont vides. Et il ne se produit que si j'essaie de l'inclure MathGame.h
dans un autre fichier.
Voici le code pour la classe de Jeu:
//Game.h
#import "cocos2d.h"
#import <GameKit/GameKit.h>
#import "SplashScreenLayer.h"
@interface Game : CCLayer
//A bunch of stuff
@end
Le nouveau type de jeu:
//MathGame.h
#import "Game.h"
@interface MathGame : Game
@end
Et le menu principal qui comprend à la fois:
//SplashScreen.h
#import "cocos2d.h"
#import "Game.h"
#import "MathGame.h"
#import "HowToPlayLayer.h"
#import "AboutLayer.h"
@interface SplashScreenLayer : CCLayer
//A bunch of stuff
@end
Je ne peux pas trouver quelque chose d'utile en ligne. Des idées?
S'il vous plaît montrer pertinentes
@interface
sections. Habituellement, cela se produit lorsque vous oubliez de #import des en-têtes et, au lieu de simplement utiliser @class
à la place.Bon, ajouté le code
J'ai confiance, il y a un
@end
quelque part après @interface Game : CCLayer
?Il y est. Juste à gauche en sortant de la viande de fichiers
OriginalL'auteur cstack | 2012-08-05
Vous devez vous connecter pour publier un commentaire.
Vous avez simplement une importation cycle:
Game
importationsSplashScreenLayer
SplashScreenLayer
importationsMathGame
MathGame
importationsGame
Votre solution:
Quitter le
import
à l'intérieur de laMathGame
, et de changer l'autre, les importations de @classe.Pour résumer:
Avec la réponse à votre question ci-dessus, laissez-moi vous expliquer quelques petites choses que je sais déjà de lire au sujet de l'avant declerations et l'importation de cycles:
Tout d'abord, allez lire à leur sujet! Ils sont une partie très importante de l'Objective-C, et vous ne voulez pas le manquer!
Deuxièmement, utiliser @classe à chaque fois que vous avez besoin de cette classe pour le privé, des variables ou des paramètres de la méthode. Le recours aux importations pour l'héritage et forte propriétés.
Enfin, n'oubliez pas de
#import
votre transmise classes dans la mise en œuvre de fichier!En raison de l'utilisation de @ classe notifie seulement votre classe qu'il y a une classe qui n'existe que de nom, mais il n'a pas d'exposer les méthodes et les propriétés qu'il a
bien expliqué. j'ai raté le chapeau.
OriginalL'auteur Mazyod
Dans mon cas,j'ai de l'utilisateur du xx classe et utiliser le @de classe mais pas de #import du .h fichier.et la compilation se plaindre..
OriginalL'auteur frank