我在 HelloWorldLayer 中有我的代码,我正在使用委托来更改 ScoreLayer 中的分数,并且我想从 ScoreLayer 向 HelloWorldLayer发送一条消息,以便使用新图像更改 ui。
是否可以在每个班级中创建一个代表(在 ScoreLayer 中创建一个 HelloW... 代表,在 HelloW... 中创建一个 ScoreLayer 代表)?类似的东西:
hellolayer.delegate = scoreLayer;
scoreLayer.powerUpDelegate = hellolayer;
?
@class MyClass
不起作用:协议未被识别。
"#import "..."
:其中一个协议无法识别,但我想会有问题,因为 classA 将导入 classB,这将再次导入 classA 等等。
我应该怎么做?这是一些代码:
//in HelloWorldLayer.h :
#import "ScoreLayer.h"
@protocol PowerUpDelegate
-(void)scalePowerUp;
@end
// HelloWorldLayer
@interface HelloWorldLayer : CCLayer <PowerUpDelegate>
{ … }
@property (nonatomic,retain) id <ScoreDelegate> delegate;
//in ScoreLayer.h :
//@class HelloWorldLayer; -->does not recognize the protocol
#import "HelloWorldLayer.h"
@protocol ScoreDelegate
//...
@end
@interface ScoreLayer : CCLayer <ScoreDelegate>{
//...
}
@property (nonatomic,retain) id <PowerUpDelegate> powerUpDelegate;//-->cannot find protocol definition...
谢谢