2012-08-08 63 views
0

可能重複:
Error 「No known class method for selector 'Hello:'」 in custom-made framework選擇器場景沒有已知的類方法?

我創造了我的遊戲主菜單這裏 它不會編譯,但我不明白爲什麼

// 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文件中導入某些內容?或實施? 謝謝你提供給我的任何幫助。

+0

xcode中的錯誤代碼是什麼?寫更多。 – 2012-08-08 01:36:21

回答

1

指令類是否實現了這個選擇器?

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

並且Instruction類的接口是否聲明瞭這個選擇器,以便其他類可以引用它?

@interface Instructions : CCLayer 
{ 
} 

+(id) scene; 

@end 

你需要兩個。

0

從你發佈的代碼+ (CCScene *) sceneMainMenu類的方法,你從Instructions調用它,這可能沒有一個方法具有相同的簽名。

相關問題