iPhone-在次线程上崩溃不';不要影响主线程

iPhone-在次线程上崩溃不';不要影响主线程,iphone,objective-c,multithreading,xcode,ios4,Iphone,Objective C,Multithreading,Xcode,Ios4,我注意到,当我的应用程序在主线程上崩溃时,在设备上运行时,程序停止,我在XCode上获得调用堆栈,这样我就可以确切地看到崩溃发生的位置/原因 但是,当崩溃发生在辅助线程上时,主线程(gui)继续正常运行,我只在控制台上收到关于崩溃的消息,而没有整个调用堆栈 为了验证它,我调用了一个不存在的方法,一次在主线程上,一次在次线程上,实际上,当次线程崩溃时,我在控制台中只看到一条关于“无法识别的选择器”的消息 有没有办法让次线程崩溃应用程序并显示完整的堆栈?这对于调试目的非常有用 谢谢您应该在第二个线程

我注意到,当我的应用程序在主线程上崩溃时,在设备上运行时,程序停止,我在XCode上获得调用堆栈,这样我就可以确切地看到崩溃发生的位置/原因

但是,当崩溃发生在辅助线程上时,主线程(gui)继续正常运行,我只在控制台上收到关于崩溃的消息,而没有整个调用堆栈

为了验证它,我调用了一个不存在的方法,一次在主线程上,一次在次线程上,实际上,当次线程崩溃时,我在控制台中只看到一条关于“无法识别的选择器”的消息

有没有办法让次线程崩溃应用程序并显示完整的堆栈?这对于调试目的非常有用


谢谢

您应该在第二个线程的代码周围放置一个try…catch,并在catch中转储完整的异常描述


尽管不熟悉iPhone的内部结构,但请记住,主线程只是一个运行各种方法的循环。对于系统在主循环上执行的任何代码,它最有可能在try…catch中执行该代码,以便记录问题,并可能优雅地退出应用程序

我没有看到崩溃的原因是我有try&catch语句……必须注意它们。

我希望后台线程崩溃也会使所有其他线程崩溃,或者至少停止运行的应用程序,让我在XCode中知道它,以便我可以调试它。