B
bluheim
Invité
Voici mon problème, très simple à reproduire :
J'ai un projet composé de deux classes, Classe1 et Classe2, dont voici les définitions :
Classe1.h
#import <Foundation/Foundation.h>
#import "Classe2.h"
@interface Classe1 : NSObject {
}
- (Classe2 *)fonctionQuiRenvoieUnObjectClasse2;
@end
Classe1.m
#import "Classe1.h"
@implementation Classe1
- (Classe2 *)fonctionQuiRenvoieUnObjectClasse2
{
return nil;
}
@end
Classe2.h
#import <Foundation/Foundation.h>
#import "Classe1.h"
@interface Classe2 : NSObject {
}
@end
Classe2.m
#import "Classe2.h"
@implementation Classe2
@end
Rien de bien compliqué n'est-ce pas ? J'ai donc une méthode de la classe Classe1 qui renvoit un objet de classe Classe2. Rien que du très classique...
Hé bien figurez-vous qu'il est impossible de compiler ce projet !
Il y a une erreur de compilation située à la ligne de Classe1.h que j'ai mis en rouge :
error: parse error before "Classe2"
Et un warning situé à la ligne en orange de Classe1.h :
'@end' must appear in an implementation context
Je ne vois pas DU TOUT ce que je fais de mal avec ces deux pauvres ridicules classe et ce projet riquiqui !
Si quelqu'un peut m'éclairer, il aura sauver mon week-end parcequ'en l'état, se retrouver coincé sur des trucs aussi...aberrants, ça donne pas vraiment envie d'aller plus loin.
Au fait, juste pour rigoler un peu, précisons que si on enlève la ligne "#importe Classe1.h" dans Classe2.h, la compilation se passe sans problème...
J'en conclu que je ne suis pas autorisé à avoir besoin de Classe1 dans Classe2 ET de Classe2 dans Classe1. Ca fait peur...
Merci d'avance !
J'ai un projet composé de deux classes, Classe1 et Classe2, dont voici les définitions :
Classe1.h
#import <Foundation/Foundation.h>
#import "Classe2.h"
@interface Classe1 : NSObject {
}
- (Classe2 *)fonctionQuiRenvoieUnObjectClasse2;
@end
Classe1.m
#import "Classe1.h"
@implementation Classe1
- (Classe2 *)fonctionQuiRenvoieUnObjectClasse2
{
return nil;
}
@end
Classe2.h
#import <Foundation/Foundation.h>
#import "Classe1.h"
@interface Classe2 : NSObject {
}
@end
Classe2.m
#import "Classe2.h"
@implementation Classe2
@end
Rien de bien compliqué n'est-ce pas ? J'ai donc une méthode de la classe Classe1 qui renvoit un objet de classe Classe2. Rien que du très classique...
Hé bien figurez-vous qu'il est impossible de compiler ce projet !
Il y a une erreur de compilation située à la ligne de Classe1.h que j'ai mis en rouge :
error: parse error before "Classe2"
Et un warning situé à la ligne en orange de Classe1.h :
'@end' must appear in an implementation context
Je ne vois pas DU TOUT ce que je fais de mal avec ces deux pauvres ridicules classe et ce projet riquiqui !
Si quelqu'un peut m'éclairer, il aura sauver mon week-end parcequ'en l'état, se retrouver coincé sur des trucs aussi...aberrants, ça donne pas vraiment envie d'aller plus loin.
Au fait, juste pour rigoler un peu, précisons que si on enlève la ligne "#importe Classe1.h" dans Classe2.h, la compilation se passe sans problème...
J'en conclu que je ne suis pas autorisé à avoir besoin de Classe1 dans Classe2 ET de Classe2 dans Classe1. Ca fait peur...
Merci d'avance !