2012-10-27 44 views
1

我很新的编码上的Xcode(一般或客观-C)和我似乎无法摆脱这些错误的:的Xcode 4.3.1语法错误

// 
    // HelloWorldLayer.m 
    // FirstGame 
    // 
    // Created by Kostas on 1/14/12. 
    // Copyright __MyCompanyName__ 2012. All rights reserved. 
    // 


    // Import the interfaces 
    #import "HelloWorldLayer.h" 
    #import "GamePlay.h" 

    // HelloWorldLayer implementation 
    @implementation HelloWorldLayer 
    +(id) scene { 

     CCScene *scene = [CCScene node]; 

     HelloWorldLayer *layer = [HelloWorldLayer node]; 
     // add layer as a child to scene 
     [scene addChild: layer]; 
     // return the scene 
     return scene; 
    } 

    // on "init" you need to initialize your instance 

    -(id) init { 

     if((self=[super init])) { 

      [CCMenuItemFont setFontName:@"Marker Felt"]; 
      [CCMenuItemFont setFontSize:35]; 
      CCMenuItem *Play = [CCMenuItemFont itemFromString:@"PLAY" 
           target:self 
           selector:@selector(gotoGameplay:)]; 

      CCMenu *menu = [CCMenu menuWithItems: Play, nil]; 
      menu.position = ccp(240, 160); 
      [menu alignItemsVerticallyWithPadding:10]; 
      [self addChild:menu]; 
     } 

     return self; 
    } 

    -(void) goToGameplay: (id) sender { 

     [[CCDirector sharedDirector] 
       replaceScene:[[CCTransitionFade 
        transitionWithDuration:1 
        scene:[GamePlay node] 
           ]]; **<-----Here is my error it says "Expected identifier"** 
    } 


    - (void) dealloc { 


     [super dealloc]; 
    } 
    @end 

预期标识符只是X代码提出了什么。

回答

0

这条线:

[[CCDirector sharedDirector] 
      replaceScene:[[CCTransitionFade 
       transitionWithDuration:1 
       scene:[GamePlay node] 
          ]]; 

有5个开放式支架,仅有4右方括号。需要有相同的号码(并在正确的地方)。最有可能你需要摆脱replaceScene:后的两个开放括号中的一个。

顺便说一句 - 为什么你使用这么旧的Xcode?你应该使用最新的 - 4.5.1。

+0

我猜他使用旧的Xcode能够使用低于6.0的基础SDK ... – Cashew

1

如果你计算括号,你会看到你有两个比括号更多的开始括号。我已经在这里缩进了,所以你可以清楚地看到问题。

-(void) goToGameplay: (id) sender { 
    [ 
     [CCDirector sharedDirector] 
     replaceScene: 
     [ // <-- either this is extra 
     [CCTransitionFade transitionWithDuration:1 
              scene:[GamePlay node] 
     ] 
     ]; 
    //]; <-- or this is missing 
} 

编译器是想告诉你,没想到却发现消息的中间分号发送表情。我对Cocos2D框架不够熟悉,无法知道你想要做什么,但至少你可以看到什么问题。

0

变化

[[CCDirector sharedDirector] 
       replaceScene:[[CCTransitionFade 
        transitionWithDuration:1 
        scene:[GamePlay node] 
           ]]; 

到,

[[CCDirector sharedDirector] replaceScene: 
     [CCTransitionFade transitionWithDuration:1 
              scene:[GamePlay node]]]; 

这应该解决这个问题。你有一个额外的[之前[CCTransitionFade transitionWithDuration:1 scene:[GamePlay node]]