我正在努力了解由于 AVAudioRecorder 实例上的方法调用而引发的异常。我设置了一个异常断点,但我无法从堆栈跟踪中收集任何有用的信息。抛出异常的点是在调用期间:[recorder prepareToRecord];
如果我关闭断点,应用程序运行良好,似乎没有任何负面影响。录音机功能正常。需要说明的是,具体情况并不那么重要。更像是“在这种情况下我应该怎么做才能解决问题?”的情况。我看不到任何方法可以通过手头的工具了解更多有关问题的信息。 ACBaseCodec 上的文档似乎陈旧,并没有说明可能导致抛出异常的原因。
来自调试导航器的堆栈跟踪:
来自单个线程的堆栈跟踪:
有没有办法知道是什么导致了这个异常?
最佳答案
不幸的是,我认为 AVAudioPlayer 和 AVAudioRecorder 似乎使用 C++ 异常作为其在 prepareTo 中的正常处理流程的一部分...。因此,如果您对所有异常启用中断,则没有真正的方法可以避免在那里停止。您可能可以继续继续并通过它。另一种可能的解决方法是仅启用 Objective-C 异常,因为它似乎在抛出 C++ 异常。这就是我所做的。抱歉,这不是答案,为什么他们为 prepareTo 做出设计决定......超出了我的理解。
关于xcode - 在 XCode 4 中调试异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7026545/