Je me demande si quelqu'un peut expliquer où je vais mal ici, je crée 2 objets (voiture & moteur) où l'objet voiture contient un pointeur vers l'objet du moteur. Je sais que je manque l'évidence ou que je fais juste une erreur stupide, mais je ne peux pas vraiment mettre le doigt dessus. NB: tout le code fonctionne, à l'exception de la ligne qui est le commentaire ERREUR.Erreur de composition de classe?
// INTERFACE ------------------------------------------------------- **
@interface EngineClass : NSObject {
}
@end
@interface CarClass : NSObject {
EngineClass *engine;
}
- (void)setEngine:(EngineClass *)value;
@end
// IMPLEMENT ------------------------------------------------------- **
@implementation CarClass
- (void)setEngine:(EngineClass *)newEngine {
if (engine != newEngine) {
[engine release];
engine = [newEngine copy];
}
}
@end
@implementation EngineClass
@end
// MAIN ------------------------------------------------------------ **
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
CarClass *newCar_001;
EngineClass *newEngine_001;
newCar_001 = [[CarClass alloc] init];
newEngine_001 = [[EngineClass alloc] init];
[newCar_001 setEngine: newEngine_001]; // ERROR
// Clean up
[newCar_001 release];
[newEngine_001 release];
[pool drain];
return 0;
}
// END ------------------------------------------------------------- **
l'erreur est ....
course 22/09/2009 13: 41: 05,483 cocoa_engine_TEST [8606: a0f] 22/09/2009 13: 41: 05,485 cocoa_engine_TEST [8606 : a0f] 2009-09-22 13: 41: 05.485 cocoa_engine_TEST [8606: a0f] - [EngineClass copyWithZone:]: sélecteur non reconnu envoyé à l'instance 0x10010c8d0 2009-09-22 13: 41: 05.486 cocoa_engine_TEST [8606: a0f] *** Termination de l'application en raison d'une exception non interceptée 'NSInvalidArgumentException', raison: '- [EngineClass copyWithZone:]: sélecteur non reconnu envoyé à l'instance 0x10010c8d0'
acclamations -Gary-
Quelle est l'erreur? – rein