0

doneInitializingシーンにレイヤーを追加しています。初期化の後にブール値を設定して、レイヤーが完全にロードされたことを確認したいと思いますYES。しかし、どういうわけかそれにアクセスする必要があります...どうすればよいですか?

LoadingScreen.h

@interface LoadingScreen : CCLayerColor{
    CCLayer *hWL;
}

LoadingScreen.m

hWL = [HelloWorldLayer node];

[self addChild:hWL];

if(hWL.doneInitializing == YES){ // that is where I get stuck
//do something

}

変数にアクセスできませんdoneInitializing...なぜですか?

HelloWorldLayer.h

@interface HelloWorldLayer : CCLayer
{   
    BOOL doneInitializing;
}



@property (nonatomic,readwrite) BOOL doneInitializing;

HelloWorldLayer.m

@synthesize doneInitializing;

これを達成するためのより良いアプローチはありますか?

4

1 に答える 1

2

この部分を変更するだけです:

@interface LoadingScreen : CCLayerColor{
    CCLayer *hWL;
}

これに:

@interface LoadingScreen : CCLayerColor{
    HelloWorldLayer *hWL;
}

または、代わりに次の行を使用してください。

if(((HelloWorldLayer *)hWL).doneInitializing == YES){

HelloWorldLayerコンパイラとランタイムは、の代わりにのプロパティを取得していることを認識する必要がありますCCLayer。を割り当てていますがhWL = [HelloWorldLayer node]hWLはプレーンであると宣言されており、ランタイムが知る限り、aには。という名前のプロパティがないためCCLayer、の行で問題が発生します。として宣言するか、そのクラスにキャストして、ランタイムに「おい、hWLはHelloWorldLayerです」と伝える必要があります。hWL.doneInitializingCCLayerdoneInitializinghWLHelloWorldLayer

于 2012-05-31T13:42:16.493 に答える