我正在使用 Xcode 6(GM,我没有下载测试版),并且正在为 iOS 7+ 开发应用程序。对于我所有的项目,我只是打开了以前在 Xcode 5 中工作的相同项目。
在断点导航器中,我打开了 All Exceptions
断点。它设置为 Break: On Throw
。现在,每次我运行我的应用程序(无论是在设备上还是在模拟器中),它都会在 return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
行停止执行main()
函数。
如果我按 Play 继续执行程序两次,程序运行良好。所以这并不妨碍我工作,但是每次都必须手动播放执行并重置我的编辑器很烦人。
我喜欢我在 Xcode 中设置的行为(将当前编辑器带到执行暂停的位置),并且拥有 All Exceptions
断点在 IMO 中很重要。 (所以我不想改变这些)
通过在相同的环境中为 iOS 7 目标(同样是设备或模拟器)运行相同的代码,不会引发异常。
有什么可能导致这种奇怪行为的线索吗?
最佳答案
如评论中所述,您应该通过编辑 All Exceptions 断点来关闭捕获 C++ 异常。
为此,请右键单击断点并将 Exception 从 All 更改为 Objective-C :
C++ 代码中的异常是正常应用功能的一部分。但是,异常断点不是捕获未处理的,而是捕获每个引发的异常,即使它们稍后被正确处理,因此会停止执行。
关于objective-c - Xcode 在 iOS 8 的 Main() 中抛出异常,断点为 'all exceptions',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26127004/