HelloWorldLayer にコードがあり、デリゲートを使用して ScoreLayer のスコア番号を変更しています。UI を新しい画像で変更するために、ScoreLayer から HelloWorldLayer にメッセージを送り返したいと考えています。
各クラスにデリゲートを作成してもよろしいですか? そんな感じ :
hellolayer.delegate = scoreLayer;
scoreLayer.powerUpDelegate = hellolayer;
?
@class MyClass
動作しません: プロトコルが認識されていません。
"#import "..."
: プロトコルの 1 つが認識されていませんが、classA が classB をインポートし、classA が再び 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...
ありがとう