objective-c - Xcode 在 iOS 8 的 Main() 中抛出异常,断点为 'all exceptions'

标签 objective-c xcode ios8 xcode6

我正在使用 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++ 异常。

为此,请右键单击断点并将 ExceptionAll 更改为 Objective-C :

change All to Objective-C

C++ 代码中的异常是正常应用功能的一部分。但是,异常断点不是捕获未处理的,而是捕获每个引发的异常,即使它们稍后被正确处理,因此会停止执行。

关于objective-c - Xcode 在 iOS 8 的 Main() 中抛出异常,断点为 'all exceptions',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26127004/

相关文章:

objective-c - 从具有 URL 的 WebView 打印 PDF。 Objective C macOS

java - 在 Java 中传递对象类型的参数等同于 Obj-C

iphone - 更改 UITextField 行为

objective-c - applicationDidFinishLaunching 变量范围问题?

xcode - 旧版本的应用程序出现在模拟器中

ios8 - GIDSignIn 返回 "Keychain error"

ios - Xcode iOS 生成 .png 文件并使用 NSFileManager 保存

ios - 触摸 move UILabel 一直有效,直到值修复 - 错误还是功能?

xcode - 如何创建一个搜索路径类似于 <Google/Analytics.h> 的 cocoa-touch 框架

ios - 如何制作支持 ActivityViewController 的应用程序?