problème de déclaration?
Rocou
Membre
J'ai créé une classe (pas finie), voici les deux fichiers .h et .m:
//SqlDate.h
@interface SqlDate : NSObject {
IBOutlet NSTextField *ladateDeb;
IBOutlet NSTextField *ladateFin;
}
-(void)transformeDateSql;
@end
******************************
//SqlDate.m
#import "SqlDate.h"
@implementation SqlDate
- (void)transformeDateSql
{
}
@end
Les Outlets sont bien reliés à des EditField sous IB
Mais quand j'essaie d'utiliser cette classe dans mon controlleur:
NSString *toto = [ladateDeb stringValue];
j'obtiens le message d'erreur: error:'ladateDeb' undeclareed (first use in this function)
Je n'arrive pas à comprendre pourquoi. (le header SqlDate.h est bien importé dans mon controlleur)
//SqlDate.h
@interface SqlDate : NSObject {
IBOutlet NSTextField *ladateDeb;
IBOutlet NSTextField *ladateFin;
}
-(void)transformeDateSql;
@end
******************************
//SqlDate.m
#import "SqlDate.h"
@implementation SqlDate
- (void)transformeDateSql
{
}
@end
Les Outlets sont bien reliés à des EditField sous IB
Mais quand j'essaie d'utiliser cette classe dans mon controlleur:
NSString *toto = [ladateDeb stringValue];
j'obtiens le message d'erreur: error:'ladateDeb' undeclareed (first use in this function)
Je n'arrive pas à comprendre pourquoi. (le header SqlDate.h est bien importé dans mon controlleur)
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tiens tu peux le télécharger là
Merci pour le test. Effectivement ça compile bien.
En fait mon projet contient les fichiers sources suivant:
SqlDate.h
SqlDate.m
Controleur.h
Controleur.m
Et c'est dans Controleur.m que j'ai cette ligne qui ne se compile pas:
NSString *toto = [ladateDeb stringValue];
tu essayes d'utiliser la variable laDateDeb... dans le code de ton Controlleur. Or ton controller ne connais pas cette variable : ce n'est ni une variable que tu as déclarée localement dans ta méthode dans laquelle tu mets ton code, ni une variable d'instance de ton controlleur. C'est une variable d'instance de la classe SqlDate (classe que tu as déclarée dans SqlDate.h).
Donc il faut d'abord que tu aies un objet SqlDate d à ta disposition, et ensuite que tu demandes [d laDateDeb] pour récupérer le NSTextField correspondant... et enfin que tu demandes sur l'objet retourné (NSTextField) sa stringValue.
C'est comme si tu avais un chapeau contenant des papiers, et que tu essayais de demander le nom du chapeau au lieu de demander le nom d'un papier dans le chapeau...
Mais oui, quel idiot je fais.
En tout cas, merci beaucoup.