加载声音时抛出异常 - 但事情仍然有效

时间:2016-05-10 18:34:07

标签: objective-c xcode sprite-kit

我有以下几行来预先存储声音存储单声道中的几个(短)声音(然后在需要播放时可以抓取它们)

_successSound = [SKAction playSoundFileNamed:@"success2.wav" waitForCompletion:NO];
_failureSound = [SKAction playSoundFileNamed:@"failure2.mp3" waitForCompletion:NO];

当我使用异常断点(我倾向于总是这样做)运行我的应用程序时,它会在第二行中断。删除断点,一切都按预期工作。我之前只是在播放声音时才进行“加载”(这是第一次播放时导致速度减慢),并且从未引起任何异常。

编辑:还应该补充一点,如果我将failure2声音更改为我的声音文件夹中的其他声音,则没有任何异常 - 也许这与mp3有关?

2 个答案:

答案 0 :(得分:1)

操作系统代码可以抛出被捕获但永远不会被外部看到的异常,如果您在异常上设置断点但不需要担心,而不是您需要避免的事情,这是不方便的,只要没有未捕获的异常。

使用C ++实现的API会发生很多事情 - 抛出和捕获异常在C ++中更为常见。

答案 1 :(得分:0)

好的,所以我通过将mp3转换为wav来摆脱异常。如果有人知道为什么这首先是一个问题,我会非常感兴趣。