我在Spritebuilder中有一个按钮。特点如下:
Doc root var:_playbutton
|选择器:play
目标:| Document root
Xcode中按钮的代码:
CCButton *_playButton;
- (void)play {
CCScene *scene = [CCBReader loadAsScene:@"LevelSelect"];
[[CCDirector sharedDirector] replaceScene:scene];
}
LevelSelect是Spritebuilder中的一个独立场景。
此代码一直有效,直到我的后退按钮出现问题,后退按钮位于场景LevelSelect中。要查看特性,请参阅我的“使用Spritebuilder,崩溃按钮”问题。
我的问题是,为什么这些代码出现在我的调试控制台中?
CCBReader: Couldn't find member variable: _playbutton
答案有效,有点。但是,现在在LevelSelect中,Xcode找不到Back按钮。这是代码:
@implementation LevelSelect {
CCButton *_backbutton;
}
- (void)back {
CCScene *backScene = [CCBReader loadAsScene:@"MainScene"];
[[CCDirector sharedDirector] replaceScene:backScene];
}
如你所见,我已经纳入了答案。你是如何解决这个问题的?
答案 0 :(得分:2)
放置变量的方式是全局变量,而不是成员变量。
如果您希望成员变量为私有,请将其放在.m
文件中以下位置:
@implementation YourClassName {
CCButton *_playButton;
}
答案 1 :(得分:1)
CCBReader: Couldn't find member variable XXX
。这是一个逐步的工作流程,用于检查以确保您的连接设置正确。
这些事情一直发生在我身上,因为它可能在多个地方都很糟糕。
对于此示例,我将使用名为CCButton
的{{1}},_backbutton
场景是 ivar 。
LevelSelect
是LevelSelect
根节点CCScene
被标记为CCButton
,并且标记了正确的名称,如果您不希望它也不应该是自定义类Doc root var
File->Clean Project
按钮Publish
LevelSelect
中,您宣布了 ivar LevelSelect
SpriteBuilder
中的Ivar声明
Xcode
中的Ivar声明Product->Clean