更换 Sprite 套件中的场景时崩溃
Posted
技术标签:
【中文标题】更换 Sprite 套件中的场景时崩溃【英文标题】:Crash when replacing scene in Sprite kit 【发布时间】:2014-01-25 12:56:49 【问题描述】:这是我复制场景的代码:
SKScene * menu = [GameScene sceneWithSize:self.size];
SKTransition *transitionGameScene = [SKTransition fadeWithColor:[UIColor whiteColor] duration:2.0];
transitionGameScene.pausesIncomingScene = NO;
[self.view presentScene:menu transition:transitionGameScene];
return;
但是不能正常工作,当我按下按钮重新启动关卡时会调用此代码,有时关卡重新启动没有任何问题,有时它崩溃,但调试器没有给我任何错误,这是屏幕xcode:
这是 NSLog(@"%@", [NSThread callStackSymbols]);
0 Game 0x000bdbe3 -[GameScene repleceScene] + 58
1 Game 0x000bd875 __39-[GameScene sidebar:didTapItemAtIndex:]_block_invoke300 + 44
2 Game 0x000d19f5 __47-[RNFrostedSidebar dismissAnimated:completion:]_block_invoke + 324
3 UIKit 0x32510e6d <redacted> + 284
4 UIKit 0x32510ab7 <redacted> + 178
5 UIKit 0x325109cf <redacted> + 66
6 QuartzCore 0x32166413 <redacted> + 234
7 libdispatch.dylib 0x3a5960af <redacted> + 22
8 libdispatch.dylib 0x3a5989a9 _dispatch_main_queue_callback_4CF + 268
9 CoreFoundation 0x2fd1f5b1 <redacted> + 8
10 CoreFoundation 0x2fd1de7d <redacted> + 1308
11 CoreFoundation 0x2fc88471 CFRunLoopRunSpecific + 524
12 CoreFoundation 0x2fc88253 CFRunLoopRunInMode + 106
13 GraphicsServices 0x349c22eb GSEventRunModal + 138
14 UIKit 0x3253d845 UIApplicationMain + 1136
15 Game 0x000ad205 main + 116
16 libdyld.dylib 0x3a5aaab7 <redacted> + 2
谁能帮我理解问题出在哪里??
【问题讨论】:
首先,在您的代码中设置一个异常断点。其次,在您的问题中发布完整的符号化崩溃日志。最后,试图教你如何在 Xcode 中调试是一个太大的问题。如果您不知道该做什么或进行在线搜索,请查看 2012 年和 2013 年 WWDC 的一些视频。 你的 self.view 是一个 SKView 对象吗?如果没有,只需执行 SKView *view = (SKView *)self.view;其他代码... [查看 presentScene:scene transition:transition];希望这会有所帮助 【参考方案1】:我的代码有效,除了两个例外,看起来和你的代码一模一样。
-
尝试删除 transitionGameScene.pausesIncomingScene = NO;
或
-
删除返回(看不到其余代码,但如果您要替换场景,我认为您不需要此返回)
尝试这两种方法并回复我。
【讨论】:
以上是关于更换 Sprite 套件中的场景时崩溃的主要内容,如果未能解决你的问题,请参考以下文章
在 removeFromParent 上 Sprite Kit iOS 7.1 崩溃