我有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根本没有被调用。任何想法?
答案 0 :(得分:0)
在UpdateLayer init方法中,你不应该保留对象吗?