在Delegate中不调用方法

时间:2012-03-11 17:22:54

标签: iphone objective-c cocos2d-iphone

我有2个类,ObjectBody(BodyNode)和UpdateLayer(CCLayer),我实现了一个委托方法让ObjectBody在UpdateLayer中调用一个方法。 以下是我的委托协议的示例。

在我的ObjectBody.h中

//Here i set up the protocol
@protocol objectDelegate
-(void) updateStatus
@end

//ObjectBody is a BodyNode
@interface ObjectBody:BodyNode{
    id<objectDelegate> delegate
}

@property (nonatomic,assign)id<objectDelegate>delegate;

在我的ObjectBody.mm

//synthesize the property in .h
@synthesize delegate

//sendStatus will get called upon collision
-(void)sendStatus{
[delegate updateStatus]

在我的UpdateLayer.h中

@interface UpdateLayer:CCLayer<objectDelegate>{
    ObjectBody *object;
}

在我的UpdateLayer.mm

-(id)init{
    if((self=[super init])){
       object=[[ObjectBody alloc]init];
       [object setDelegate:self]; 
    }
}

-(void)updateStatus{
    //Update something here
}

问题是,方法updateStatus根本没有被调用。任何想法?

1 个答案:

答案 0 :(得分:0)

在UpdateLayer init方法中,你不应该保留对象吗?