0

変数を使用して新しいシーンを呼び出すコードがあります。

    [[CCDirector sharedDirector] replaceScene:[GameScene sceneWithParam:item.tag]];

GameScene.h 内

@interface GameScene : CCLayer {
}



+(id) sceneWithParam:(int)nvl;
@end

GameScene.m

+(id) sceneWithParam:(int)nvl
{
    CCScene *scene = [CCScene node];

    GameScene *layer = [GameScene node];

    [scene addChild: layer];

    return scene;

}


-(id) init
{

    if( (self=[super init] )) {



    }
    return self;
}

私はすでにnilプロパティif( (self=[super init] )) { を設定しようtestとしましtest = nvl; inside +(id) sceneWithParam:(int)nvl;たが、それは不可能です。

4

1 に答える 1

1

はい、静的メソッドで動的パラメーターを使用することはできません。パラメーターを使用してオブジェクトを作成する場合は、必要なパラメーターを受け取るinitメソッドを作成する必要があります。例えば:

-(id) initWithYourParam:(id)param
{
    if ( (self=[self init]) ) {
        self.propertyParam = param;
    }
    return self;
}
于 2013-05-30T14:04:25.353 に答える