2010-10-12 2 views
0

J'ai une classe appelée "HelloWorld.m" et une autre classe appelée "Person.m". Je déclare par exemple personne dans la classe HelloWorld.m comme suit:Méthode d'instance Objective C d'instance d'une autre classe

Person *person; 

Maintenant, lorsque l'utilisateur touche l'écran je tire la méthode suivante:

[person foo]; 

Mais je reçois l'erreur disant sélecteur invalide envoyé.

REMARQUE: La classe Person hérite de la classe CCSprite. Qu'est-ce que je fais mal?

Person.h:

-(void) foo; 

Person.m:

-(void) foo 
{ 
    NSLog(@"foo called!"); 
} 

MISE À JOUR 1: Dans le HelloWorld.h et HelloWorld.m je declarated personne comme une propriété. Voici l'appel à la méthode person.foo.

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 

    [self.person foo]; 
} 

HelloWorld.h:

// When you import this file, you import all the cocos2d classes 
#import "cocos2d.h" 
#import "Person.h" 

// Importing Chipmunk headers 
#import "chipmunk.h" 

// HelloWorld Layer 
@interface HelloWorld : CCLayer 
{ 
    cpSpace *space; 
    Person *person; 

} 

// returns a Scene that contains the HelloWorld as the only child 
+(id) scene; 
-(void) step: (ccTime) dt; 
-(void) addNewSpriteX:(float)x y:(float)y; 

@property (nonatomic,retain) Person *person; 


@end 

Répondre

2

Avez-vous importer l'en-tête de personne dans le haut du fichier HelloWorld?

#import "Person.h" 

Avez-vous le pointeur de initialiser personne?

person = [[Person alloc] init]; 

Est-ce que la classe Person a une méthode foo?

+0

Oui, j'ai importé Person.h. J'ai initialisé la personne dans la méthode init et oui Person a une méthode foo. – azamsharp

+0

On dirait qu'il est lié à CCSprite. Comme il est dit [CCSprite foo] sélecteur non reconnu envoyé à ... – azamsharp

+0

Pourrions-nous voir le code où vous faites l'appel à la personne? –

Questions connexes