У меня есть 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 вообще не вызывается. есть идеи?