Вызов метода экземпляра Objective C из другого класса - PullRequest
0 голосов
/ 12 октября 2010

У меня есть класс с именем «HelloWorld.m» и другой класс с именем «Person.m». Я объявил экземпляр Person в классе HelloWorld.m следующим образом:

Person *person;

Теперь, когда пользователь касается экрана, я запускаю следующий метод:

[person foo]; 

Но я получаю сообщение об ошибке, сообщающее, что недействительный селектор отправлен.

ПРИМЕЧАНИЕ. Класс Person наследуется от класса CCSprite. Что я делаю неправильно?

Person.h:

-(void) foo; 

Person.m:

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

ОБНОВЛЕНИЕ 1: В HelloWorld.h и HelloWorld.m я объявил персонажа как свойство. Вот вызов метода 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

1 Ответ

2 голосов
/ 12 октября 2010

Вы импортировали заголовок Person в верхнюю часть файла HelloWorld?

#import "Person.h"

Вы инициализировали указатель человека?

person = [[Person alloc] init];

Есть ли в классе Person метод foo?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...