2012-01-16 5 views
0

MenuItemを1つだけ追加するとうまく動作します。私は他の2つのメニューアイテムのために行くとき、それは例外「NSInvalidArgumentException」理由でクラッシュ:「+ [NSInvocation invocationWithMethodSignature:]:メソッドのシグネチャの引数がnilすることはできません」私はやっているものをここで複数のMenuItemをcocos2dに追加するとアプリケーションがクラッシュする

CCMenuItem *startGame = [CCMenuItemImage itemFromNormalImage:@"start-game.png" selectedImage:@"start-game.png" target:self selector:@selector(startGame:)]; 


    CCMenuItem *settings = [CCMenuItemImage itemFromNormalImage:@"settings.png" selectedImage:@"settings.png" target:self selector:@selector(settings:)]; 


    CCMenuItemImage *gameCentre = [CCMenuItemImage itemFromNormalImage:@"game-centre.png" selectedImage:@"game-centre.png" target:self selector:@selector(gameCentre:)]; 


    CCMenu *menu = [CCMenu menuWithItems:startGame, settings, gameCentre, nil]; 
    [menu alignItemsVerticallyWithPadding:10]; 
    [self addChild:menu z:1]; 

ここに私のセレクタ機能

-(void)startGame:(id)sender 
{ 
    NSLog(@"start game"); 
} 
-(void)setttings:(id)sender 
{ 
    NSLog(@"settings"); 
} 
-(void)gameCentre:(id)sender 
{ 
    NSLog(@"game centre"); 
} 

ありがとう、任意の助けを事前にされている

+0

スペル間違い - (void)setttings:(id)送信者 –

答えて

0

以来で終わらないあなたのセレクタ「:」、すなわち@selector(gameCentre :)、あなたのクラスのメソッドは、実際の引数取ることを確認してください

- (void)startGame:(id)sender 
{ 
    // do whatever you want here 
} 

- (void)settings:(id)sender 
{ 
    // do whatever you want here 
} 

- (void)gameCentre:(id)sender 
{ 
    // do whatever you want here 
} 
+0

同じことがありました。私にとって奇妙なことは、最初の行でクラッシュしないことです.2行目でクラッシュします。 –

+0

あなたの方法が間違っています - (void)setttings:(id)送信者、それは - (void)設定:(id) –

+0

OMG!そんなばかげたミスには申し訳ありません。実際に私の最初のゲーム開発の経験があるので、混乱しています。とにかくThanx ... –

0

に思えるあなたのセレクタ機能そのs(startGame、settings、gameCentre)は正しく書き込まれません。

+0

私の質問をセレクタ機能で編集しました –

+0

あなたのプロジェクトにコードで記述した画像が含まれているかどうかを確認してください。 – Ashishail

0

あなたのセレクタは任意のパラメータを取っていない可能性がありますし、あなたが言及しています「@selector(startGame:)」は、あたかもパラメータを取っているかのようです。パラメータを受け入れない場合は "@selector(startGame)"のようになります。

+0

それはどんな相違もしなかった。 –

関連する問題