1

私は Xcode (または一般的には Objective-C) でのコーディングにかなり慣れていないため、これらのエラーを取り除くことができないようです。

  //
    //  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-Code が思いついたものです。

4

3 に答える 3

1

括弧を数えると、左括弧よりも左括弧が 2 つ多いことがわかります。問題を明確に確認できるように、ここでそれらをインデントしました。

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

コンパイラは、メッセージ送信式の途中でセミコロンが見つかるとは想定していなかったことを伝えようとしています。私は Cocos2D フレームワークに精通しておらず、あなたが何をしようとしているのかを正確に知ることができませんが、少なくとも何が問題なのかはわかります。

于 2012-10-27T05:04:49.487 に答える
0

この行:

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

には、開き括弧が 5 つあり、閉じ括弧は 4 つしかありません。同じ番号 (および適切な場所) が必要です。ほとんどの場合、 の後の 2 つの開き括弧のうちの 1 つを取り除く必要がありますreplaceScene:

ところで - なぜあなたはそのような古い Xcode を使用しているのですか? 最新の 4.5.1 を使用する必要があります。

于 2012-10-27T05:01:17.680 に答える
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]]

于 2012-10-27T05:12:48.033 に答える