0

HelloWorldLayerクラスで初期化するメソッドプレーヤーメソッド(NSObjectから継承)を作成しました。同じクラスの他のメソッドを、割り当てる必要がないように宣言したいと思います。例えば:

Player.mm

-(id)spritePlayer:(CCLayer *)parentLayer 
                     inWorld:(b2World *)world
{
    creation of sprite body and other stuff
}

このメソッドをcontactListenerクラスで使用したいのですが、プレーヤークラスとして宣言しました。

-(void) touchingFix:(b2Fixture *)touchedFix
{
    bodyTouched=TRUE;
    bodyFix=touchedFix;
}

Contact Listenerクラスでは、次の方法でのみアクセスできます。

[[Player alloc] touchingFix:fixtureA];

別の方法で割り当てずにアクセスすることはできませんか?はいの場合、どうすればよいですか。

4

1 に答える 1

2

クラスメソッドに変更します。メソッドの前にある「-」を削除し、「+」に変更します。

+(void) touchingFix:(b2Fixture *)touchedFix
{
    bodyTouched=TRUE;
    bodyFix=touchedFix;
}

クラスのインスタンスへのポインタの代わりにクラス名を使用して、クラスメソッドにアクセスできます。

[Player touchingFix:fixtureA];
于 2012-11-18T15:13:47.243 に答える