预期的会员名称,';'在列表的末尾,并需要一个说明符?

时间:2013-07-31 17:42:37

标签: objective-c

我有以下代码:

@implementation GameScene {

 -(id)init {
self = [super init]
if (self != nil) {

    BackgroundLayer *backgroundLayer = [BackgroundLayer node];
    [self addChild:backgroundLayer z:0];

    GameplayLayer *gameplayLayer = [GameplayLayer node];
    [self addChild:gameplayLayer z:5];
}
return self;
 }

 @end

之前我已经这样做了,但自从我更新了xCode后,我一直收到以下错误消息,并将其全部固定到 - (id)行。

类型名称需要说明符或限定符

预期会员名称或';'在声明说明符之后

预期';'在声明清单的末尾

我不知道该怎么做,似乎无法解决这些问题!

3 个答案:

答案 0 :(得分:6)

除非你在一个块中定义额外的变量,否则你不应该在@implementation之后有一个左大括号,如下所示:

@implementation GameScene {
    int _variable;
}
- (id)init {
    ...
}
...
@end

类方法(init等)不应该用大括号括起来,因此修复编译器错误只是删除左大括号。

答案 1 :(得分:0)

你的GameScene实施线上有一个开放的。

将您的代码更改为

@implementation GameScene

 -(id)init {
self = [super init];
if (self != nil) {

    BackgroundLayer *backgroundLayer = [BackgroundLayer node];
    [self addChild:backgroundLayer z:0];

    GameplayLayer *gameplayLayer = [GameplayLayer node];
    [self addChild:gameplayLayer z:5];
}
return self;
}

 @end

答案 2 :(得分:0)

这很简单。我通过放置适当的" {"和"}"代码中的大括号。 您的代码应该是

    @implementation GameScene 

     -(id)init {
        self = [super init]
        if (self != nil) {

        BackgroundLayer *backgroundLayer = [BackgroundLayer node];
        [self addChild:backgroundLayer z:0];

        GameplayLayer *gameplayLayer = [GameplayLayer node];
        [self addChild:gameplayLayer z:5];
      }
        return self;
     }

   @end