У меня есть класс с именем «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