2010-07-23 6 views
0

J'essaie d'appeler des méthodes sur le parent de mon objet en passant le parent en tant que propriété. Mais je continue à obtenir cette erreur:accéder au parent d'un objet

expected specifier-qualifier-list before 'Wheel'

@interface Car : NSObject { 
    Wheel *w; 
} 

- (void)doCarStuff; 

@end 

@implementation Car 
- (id)init { 
    if((self = [super init])) { 
     //w = [[Wheel alloc] init]; 
     //w.parent = self; 
    } 
    return self; 
} 

- (void)doCarStuff { 
    NSLog(@"Car stuff"); 
} 
@end 

@interface Wheel : NSObject { 
    Car *parent; 
} 

@property (nonatomic, assign) Car *parent; 

@end 

@implementation Wheel 
@synthesize parent; 

- (id)init { 
    if((self = [super init])) { 
     [parent doCarStuff]; 
    } 
    return self; 
} 

@end 

Il est probablement parce que je dois déclarer la voiture avant que la roue et vice-versa. Je parie que la solution est si simple que je ne peux pas le voir: P

Répondre

2

Forward-déclarer la roue avant la voiture.

@class Wheel; 

@interface Car : ... 

(BTW, dans la méthode de roue -init, parent n'est pas initialisés (donc toujours nil), appelant donc [parent doCarStuff] il ne sert à rien.)

+0

Maintenant je cette erreur, Wich est encore plus confuse. ld: symbole en double dans .objc_class_name_Wheel .. collect2: ld retourné 1 état de sortie Commande /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 échoué avec le code de sortie 1 –

+0

Nevermind, je suis arrivé ce . Merci beaucoup :) –

Questions connexes