我从我的应用程序的崩溃日志中看到一些少量的SpriteKit playSoundFileNamed崩溃.崩溃发生在iOS 8.3上.
0 CoreFoundation __exceptionPreprocess
1 libobjc.A.dylib objc_exception_throw
2 CoreFoundation -[NSException initWithCoder:]
3 SpriteKit +[SKPlaySound playSoundFileNamed:atPosition:waitForCompletion:]
4 SpriteKit +[SKAction(SKActions) playSoundFileNamed:waitForCompletion:]
...
Run Code Online (Sandbox Code Playgroud)
还有一些相关的崩溃:
0 CoreFoundation __exceptionPreprocess
1 libobjc.A.dylib objc_exception_throw
2 CoreFoundation -[NSException raise:format:]
3 SpriteKit +[SKPlaySound playSoundFileNamed:atPosition:waitForCompletion:]
4 SpriteKit +[SKAction(SKActions) playSoundFileNamed:waitForCompletion:]
...
Run Code Online (Sandbox Code Playgroud)
有谁知道导致这次崩溃的原因以及如何解决这个问题?我应该将每个调用包装到playSoundFileNamed:在try-catch块中吗?
编辑
更多信息:
我正在使用Swift.试图播放我自己的声音,我看到来自不同声音的崩溃.我也看到了iOS 8.2中的一些报告,因此这次崩溃可能不是iOS 8.3特有的.
播放声音的线条:
var sound = SKAction.playSoundFileNamed("Sound/ABC.mp3", waitForCompletion: false)
self.runAction(sound)
Run Code Online (Sandbox Code Playgroud) 我已经为ARC重构了一个项目.它看起来很好,但有一个使用通知中心的对象.我在自定义dealloc方法中删除了观察者.这在非ARC项目中运行良好.它也适用于ARC,但我收到一个疯狂的警告:"方法可能错过了[super dealloc]调用." 在ARC项目中,当方法结束时,它会自动为我完成.更好的是:我不能在ARC项目中调用它!这必须是一个XCode错误,对吗?这是我的代码:
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
// [super dealloc]; will be called automatically
}
Run Code Online (Sandbox Code Playgroud)
我总是想编写不会发出警告的代码.那个黄色感叹号有办法吗?
这是几年前我上次使用TYPO3的时候.所以我不记得很多TYPO-Script.当我更新到6.0时,我发现此代码不再有效:
marks.CONTENT.30 = PHP_SCRIPT
marks.CONTENT.30.file = fileadmin/db/db.php
Run Code Online (Sandbox Code Playgroud)
它只是插入了db.php的html输出(它做了一些数据库请求,并形成了一个自定义的html/css表).
我该如何快速解决这个问题?我听说PHP_SCRIPT已被弃用,而且还有另一个关键字(USER),但我不知道如何使用它.记住:我不再是TYPO脚本专家了,所以请随时详细解释.;-)
谢谢!英戈.