我是一名 12 岁的程序员,所以如果回答,请避免深奥。(使用 12 年会理解的术语)我正在使用 Spritebuilder 创建一个应用程序。我有两个场景:MainScene 和 LevelSelect。这是不言自明的,但只是以防万一:MainScene 上名为 Play 的按钮用于转到 LevelSelect。LevelSelect 上的按钮 Back,用于返回 MainScene。问题是,每次按下后退按钮时,游戏都会崩溃并让我看到这个词:SIGABRT。
告诉我这也意味着什么会很有用。(找不到定义)。
按钮播放:Doc root var:_playbutton
选择器:play
目标:Document root
按钮播放:Doc root var:_backbutton
选择器:back
目标:Document root
。
我在 Xcode 中也有两个文件,都是 CCNode 的子类。一个称为 MainScene,另一个称为 LevelSelect。
MainScene.m 代码
#import "MainScene.h"
@implementation MainScene
CCButton *_playButton;
- (void)play {
CCScene *scene = [CCBReader loadAsScene:@"LevelSelect"];
[[CCDirector sharedDirector] replaceScene:scene];
}
LevelSelect.m 代码
#import "LevelSelect.h"
@implementation LevelSelect
CCButton *_backButton;
- (void)back {
CCScene *backScene = [CCBReader loadAsScene:@"MainScene"];
[[CCDirector sharedDirector] replaceScene:backScene];
}
我还添加了一个异常断点。
例外:Objective C
休息:On Throw
行动:Debugger Command
调试器命令:de bug
选项:NOt checked
应用断点 SIGABRT 后停止显示。该应用程序只是崩溃了,并没有导致我输入错误的代码。
0x0257029e __CFRunLoopRun + 910
19 CoreFoundation 0x0256fac3 CFRunLoopRunSpecific + 467
20 CoreFoundation 0x0256f8db CFRunLoopRunInMode + 123
21 GraphicsServices 0x03bbe9e2 GSEventRunModal + 192
22 GraphicsServices 0x03bbe809 GSEventRun + 104
23 UIKit 0x00d3dd3b UIApplicationMain + 1225
24 TrapMaster 0x00002d5c main + 92
25 TrapMaster 0x00002795 start + 53
26 ??? 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
这些是 Xcode 调试控制台中的最后 23 行代码。
我觉得可能跟CCDirector、sharedDirector、replaceScene有关系。如果答案很明显,我是 12 岁。在回答说这很容易时请不要苛刻。如果你回答了,谢谢。:)