私は 12 歳の志望プログラマーなので、答える場合は難解なことは避けてください。(12 歳が理解できる用語を使用してください) Spritebuilder を使用してアプリを作成しています。MainScene と LevelSelect の 2 つのシーンがあります。これは自明ですが、念のため: MainScene の Play というボタンを使用して、LevelSelect に移動します。LevelSelect の Back ボタンは、MainScene に戻るために使用されます。問題は、戻るボタンを押すたびにゲームがクラッシュし、SIGABRTという単語が表示されることです。
意味も教えていただけると助かります。(定義が見つかりませんでした)。
Button Play: Doc root var: _playbutton
Selector: play
Target:Document root
Button Play: Doc root var: _backbutton
Selector: back
Target: Document root
.
また、Xcode には 2 つのファイルがあり、どちらも CCNode のサブクラスです。1 つは MainScene と呼ばれ、もう 1 つは 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];
}
また、例外ブレークポイントを 1 つ追加しました。
例外: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 歳です。これがいかに簡単かを述べる際に、厳しく回答しないでください。あなたが答えたなら、ありがとう。:)