0

重複の可能性:
カスタム フレームワークのエラー「セレクター 'Hello:' の既知のクラス メソッドはありません」

ここでゲームのメイン メニューを作成しています。コンパイルされませんが、理由がわかりません。

//  Main Menu.m
//
//
//

#import "MainMenu.h"
#import "CCTouchDispatcher.h"
#import "Instructions.h"

CCSprite *seeker1;
CCSprite *cocosGuy;

@implementation MainMenu


+ (CCScene *) scene
{
    CCScene * scene = [CCScene node]; // scene is an autorelease object
    MainMenu * layer =  [MainMenu node]; // later is an autorelease object
    [scene addChild: layer]; // add layer as a child to scene
    return scene; // return the scene
}

- (id) init
{
    if ( ( self = [super init] ) )
    {
        [ self setUpMenus ];
    }
    return self;
}

- (void) setUpMenus
{

    // create menu items

    CCMenuItemImage * startButton = [CCMenuItemImage itemFromNormalImage:@"startbutton.png"
                                                           selectedImage:@"startbutton_selected.png"
                                                                  target: self
                                                                selector: @selector (doSomethingOne:)];


    CCMenuItemImage * instructionsButton = [CCMenuItemImage itemFromNormalImage:@"instructionsbutton.png"
                                                                  selectedImage:@"instructionbutton_selected.png"
                                                                         target: self
                                                                       selector: @selector(doSomethingTwo:)];


    CCMenuItemImage * unlockList = [CCMenuItemImage itemFromNormalImage: @"unlocklist.png"
                                                          selectedImage:@"unlocklist_selected.png"
                                                                 target: self
                                                               selector: @selector(doSomethingThree:)];

    // create the menu and add the items to it
    CCMenu * myMenu = [CCMenu menuWithItems: startButton, instructionsButton, unlockList,nil];


    // arrange the items vertically
    [myMenu alignItemsVertically];


    // add the menu to the scene
    [self addChild:myMenu];

}


- (void) doSomethingOne: (CCMenuItem *) menuItem
{


}

- (void) doSomethingTwo: (CCMenuItem  *) menuItem
{
    [[CCDirector sharedDirector] replaceScene:
     [CCTransitionFade transitionWithDuration:0.5f scene:[Instructions scene] ]];
}

- (void) doSomethingThree: (CCMenuItem  *) menuItem
{

}


@end

セレクタ シーンに既知のクラス メソッドがないというエラーが表示されるのはなぜですか? doSomethingTwoについて。.h ファイルに何かをインポートする必要がありますか? または実装?あなたが私に提供できる助けをありがとう。

4

2 に答える 2

1

Instructions クラスはこのセレクターを実装していますか?

+(id) scene
{
   id scene = [CCScene node];
   return scene;
}

また、命令クラスのインターフェイスはこのセレクターを宣言して、他のクラスが参照できるようにしていますか?

@interface Instructions : CCLayer
{
}

+(id) scene;

@end

両方が必要です。

于 2012-08-08T12:35:57.233 に答える
0

あなたが投稿したコードからクラスメソッドが+ (CCScene *) sceneあり、同じシグネチャを持つメソッドを持っていない可能性が高いMainMenuメソッドを呼び出しています。Instructions

于 2012-08-08T01:55:06.293 に答える