2012-10-27 66 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]]