从另一个类调用Objective C实例方法

时间:2010-10-12 02:33:58

标签: cocos2d-iphone

我有一个名为“HelloWorld.m”的类和另一个名为“Person.m”的类。我在HelloWorld.m类中声明了Person实例,如下所示:

Person *person;

现在,当用户触摸屏幕时,我会触发以下方法:

[person foo]; 

但我收到的错误是发送了无效的选择器。

注意:Person类继承自CCSprite类。我究竟做错了什么?

Person.h:

-(void) foo; 

Person.m:

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

更新1:在HelloWorld.h和HelloWorld.m中,我已将person声明为属性。这是对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 个答案:

答案 0 :(得分:2)

您是否将Person标头导入HelloWorld文件的顶部?

#import "Person.h"

您是否初始化了人物指针?

person = [[Person alloc] init];

Person类是否有foo方法?