![]() |
1
25
首先,打开
这将使用三个默认断点初始化gdb,当它们发生时,gdb将停止应用程序并向您显示堆栈跟踪。这与Xcode集成得非常好,所以一旦某个异常发生或malloc失败,您就可以通过单击堆栈跟踪元素来很好地浏览代码。
然后,打开
GCC Warning Build Settings http://lhunath.lyndir.com/stuff/gcc_warnings.png 您现在应该会收到编译器警告,因为您在代码中可能会做错误的大多数事情,并且编译器不会让您运行代码,直到您修复它们。当事情经过编译器的鼻子时,您应该能够在一个方便的地方轻松地发现gdb中断的问题。
你也应该调查一下
|
![]() |
2
9
总是使用
另外,如果你得到
在这种情况下,它将是“11076”。所以在控制台中键入:
这将告诉您代码中抛出异常的行。 |
![]() |
3
8
拼写错误的参数通常会导致在相关行中出现黄色的“警告:此类对象和此类对象不响应选择器X”。我相信这在默认情况下是打开的,因为我不需要更改任何编译器设置来查看这些设置。 此外,当我遇到未捕获的异常时,有时可以将其放入gdb控制台(在执行应用程序时应该出现),然后键入以下内容以获取所有线程的回溯: 英国电信公司 |
![]() |
4
2
您所做的并不是编译时错误,因为Objective-C运行时在运行时检查对象是否可以响应您发送给它的消息。 我建议将此生成设置添加到目标或项目中:
|
![]() |
5
1
它不是编译错误的原因是,将编译时未知的消息发送到任何对象(并且可以将任何对象配置为动态处理消息)是完全有效的。所有方法调用实际上都是发送给对象的消息。 一般来说,如果您看到任何警告,您应该解决它们,因为在大多数情况下,它们可能会导致问题(如您所见)。这里误导性的方面是,如果编译一个文件一次,而它只有警告,那么如果编译其他类而不更改有警告的类,那么警告将不会显示在编译器消息中。所以偶尔你可能会想“清理所有目标”,然后重新构建,以确保你没有错过任何警告。 |
![]() |
Tim · 测量所有目标(包括相关目标)的xcodebuild持续时间 7 年前 |
![]() |
Lukas Würzburger Chadwick Wood · Xcode 9服务器exportArchive:exportOptionsPlist键“iCloudContainerEnvironment”错误:应为{Development,Production} 7 年前 |
![]() |
Kapil_A · 如何在xcodebuild命令中传递配置文件名? 7 年前 |
![]() |
GibboK · 属性实现必须在接口“AppDelegate”中具有声明 12 年前 |