0

viewcontroller ファイルで、CCLayer を呼び出します

 [director_ runWithScene:[game1 scene]];

game1 は CCLayer で、

+ (CCScene *)scene
{
    CCScene *scene = [CCScene node];
    game1 *layer = [game node];
    [scene addChild:layer];

    return scene;
}



- (id)init
{
    if ((self = [super init]))
    {
    }
    ..
}

元のビューコントローラーでは、game1 内に新しいクラス関数を記述して、int オブジェクトを game1 シーンに渡そうとしました。

 @synthesize point;

+ (void)setPoint:(int)point_
{
    point = point_;
}

しかし、クラス関数setPointがインスタンスvarを設定できないというエラーが発生しました。

では、viewcontroller から game1 シーンに int 値を渡すにはどうすればよいでしょうか?

4

1 に答える 1

0

エラーが示すように、クラス メソッドからインスタンス変数にアクセスすることはできません。クラスメソッドでは、メソッド自体には、クラスの特定のインスタンスが変数を設定する必要があるという情報がありません (単に意味がありません)。

あなたがしなければならないことは、特定のシーン インスタンスへの参照を取得し (たとえば、プロパティに割り当てることによって)、呼び出します。[game1 setPoint:point];

P. s .: の 1 つと@synthesize point手動での実装が必要です- setPoint:(プロパティが読み取り専用ではない場合)。

于 2012-08-16T21:14:20.637 に答える