Bonjour,
je suis nouveau sur le forum, je l'ai découvert en cherchant solution à mon sujet, pour me présenter rapidement, je suis en DUT informatique, et par avant j'ai pas mal pratiqué le Java/C++/php. J'ai commencé l'objective C que récemment, je commence à bien intégrer la logique du langage. Seulement je suis confronté à un comportement très étrange, j'espère qu'on saura me dire ce qui cloche.
Les fait :
Dans une même classe héritée de NSWindow j'ai trois messages :
-(void) keyDownNSEvent*)event {
[super event];
[self autreMessage:@"unString"];
}
-(void) autreMessageNSString*)str{
//Utilise le string envoyé.
NSLog(str); // s'affiche correctement dans tous les cas.
self->monString = [self->monString appendString:str]; //Et pourtant, ne s'ajoute pas si str vient de keyDown.
}
-(void) dernierMessage{
[self autreMessage:@"unString"];
}
Que keyDown soit appellé, ou que j'appelle moi-même dernierMessage, NSLog(str); dans autreMessage m'affiche bien unString dans les deux cas, sauf que si je l'envoie depuis dernierMessage, autreMessage se comporte correctement, et depuis keyDown non. En gros autreMessage fait un appendString sur une propriétée de classe. J'ai fait le test en statique dans les deux cas biensur, sans utiliser le retour de l'objet NSEvent de keyDown. J'ai tout tenté, des stringWithString: & co. Pas moyen d'ajouter le NSString str à mon autre NSString, si str provient de keyDown. Je me retrouve toujours avec une chaine qui vaut nil. D'ou celà peut-il venir ? J'ai tenté le code hors de mon projet avec une seule classe MyWindow qui reprend l'exemple.
je suis nouveau sur le forum, je l'ai découvert en cherchant solution à mon sujet, pour me présenter rapidement, je suis en DUT informatique, et par avant j'ai pas mal pratiqué le Java/C++/php. J'ai commencé l'objective C que récemment, je commence à bien intégrer la logique du langage. Seulement je suis confronté à un comportement très étrange, j'espère qu'on saura me dire ce qui cloche.
Les fait :
Dans une même classe héritée de NSWindow j'ai trois messages :
-(void) keyDownNSEvent*)event {
[super event];
[self autreMessage:@"unString"];
}
-(void) autreMessageNSString*)str{
//Utilise le string envoyé.
NSLog(str); // s'affiche correctement dans tous les cas.
self->monString = [self->monString appendString:str]; //Et pourtant, ne s'ajoute pas si str vient de keyDown.
}
-(void) dernierMessage{
[self autreMessage:@"unString"];
}
Que keyDown soit appellé, ou que j'appelle moi-même dernierMessage, NSLog(str); dans autreMessage m'affiche bien unString dans les deux cas, sauf que si je l'envoie depuis dernierMessage, autreMessage se comporte correctement, et depuis keyDown non. En gros autreMessage fait un appendString sur une propriétée de classe. J'ai fait le test en statique dans les deux cas biensur, sans utiliser le retour de l'objet NSEvent de keyDown. J'ai tout tenté, des stringWithString: & co. Pas moyen d'ajouter le NSString str à mon autre NSString, si str provient de keyDown. Je me retrouve toujours avec une chaine qui vaut nil. D'ou celà peut-il venir ? J'ai tenté le code hors de mon projet avec une seule classe MyWindow qui reprend l'exemple.