无法运行使用cocos2d iphone编写的应用程序

无法运行使用cocos2d iphone编写的应用程序,iphone,cocos2d-iphone,Iphone,Cocos2d Iphone,我有三层a、b和c a的主要代码: -(id) init { // always call "super" init // Apple recommends to re-assign "self" with the "super" return value if( (self=[super init] )) { CCSprite *sp = [CCSprite spriteWithFile:@"bg.png"]; sp.an

我有三层a、b和c a的主要代码:

-(id) init
{
    // always call "super" init
    // Apple recommends to re-assign "self" with the "super" return value
    if( (self=[super init] )) {
            CCSprite *sp = [CCSprite spriteWithFile:@"bg.png"];
            sp.anchorPoint = CGPointZero;
            [self addChild:sp z:0 tag:1];

            [CCMenuItemFont setFontName: @"Georgia"];
            [CCMenuItemFont setFontSize:25];

            CCMenuItem *newGame = [CCMenuItemFont itemFromString:@"New Games" target:self selector:@selector(newGame:)];
            CCMenuItem *helpGame = [CCMenuItemFont itemFromString:@"Help" target:self selector:@selector(helpGame:)];

            CCMenu *menulist = [CCMenu menuWithItems:newGame, helpGame, nil];
            [menulist alignItemsVertically];

            [self addChild:menulist z:1 tag:2];

    }
    return self;
}

- (void) newGame:(id) sender
{
        CCScene *newscene = [CCScene node];
        [newscene addChild:[BScene node]];
        [[CCDirector sharedDirector] replaceScene:[CCTransitionShrinkGrow transitionWithDuration:1.2f scene:newscene]];

}

- (void) helpGame:(id) sender
{
        CCScene *newscene = [CCScene node];
        [newscene addChild:[CScene node]];
        [[CCDirector sharedDirector] replaceScene:[CCTransitionShrinkGrow transitionWithDuration:1.2f scene:newscene]];

}
b的主代码

    -(id) init
{
        if( (self=[super init] )) {
                CCSprite *sp = [CCSprite spriteWithFile:@"bg.png"];
                sp.anchorPoint = CGPointZero;
                [self addChild:sp z:0 tag:1];

                [CCMenuItemFont setFontName: @"Georgia"];
                [CCMenuItemFont setFontSize:25];

                CCMenuItem *newGame = [CCMenuItemFont itemFromString:@"New Games" target:self selector:@selector(newGame:)];
                CCMenuItem *helpGame = [CCMenuItemFont itemFromString:@"Help" target:self selector:@selector(helpGame:)];

                CCMenu *menulist = [CCMenu menuWithItems:newGame, helpGame, nil];
                [menulist alignItemsVertically];

                [self addChild:menulist z:1 tag:2];
        }
        return self;
}

- (void) dealloc
{
        [super dealloc];
}

-(void) backCallback: (id) sender
{
        CCScene *sc = [CCScene node];
        [sc addChild:[AScene node]];

        [[CCDirector sharedDirector] replaceScene:  [CCTransitionShrinkGrow transitionWithDuration:1.2f scene:sc]];        
}

问题是,当我单击进入b的起始名称时,应用程序将退出,因此我如何修复代码?谢谢

问题似乎是您的按钮调用了无法识别的self选择器,因为这行代码:

[CCMenuItemFont itemFromString:@"New Games" target:self selector:@selector(newGame:)];

似乎
-(void)newGame:(id)sender
是在另一个对象上声明的,因此您必须在上面的方法中指定正确的对象作为
目标
参数,或者将newGame函数移动到b。

您的代码块似乎格式不正确,这使得读取起来非常困难。你可以重新格式化,然后我会很高兴和你一起仔细看看。好的,我已经完成了,请看一看,谢谢