我有以下代码:
@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)行。
类型名称需要说明符或限定符
预期会员名称或';'在声明说明符之后
和
预期';'在声明清单的末尾
我不知道该怎么做,似乎无法解决这些问题!
答案 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