在iOS 5.1应用程序; 为什么我看不到例外?

我试图从一个TableViewController传递控件,把它称为'A'到另一个TableViewController,称之为'B'。 即使我启用了“所有exception”,但我陷入了主要的第20行:retVal = UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate NB在第20行的最右端是“Thread 1:breakpoint 1.3“是值得的。

任何人都可以指出我的方向,这将帮助我看看是什么导致程序停止?

// // main.m // some function // // Created by JJW on 3/23/12. // Copyright (c) 2012 JJW, LLC. All rights reserved. // #import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char *argv[]) { @autoreleasepool { //return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); int retVal = -1; @try { retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } @catch (NSException* exception) { NSLog(@"Uncaught exception: %@", exception.description); NSLog(@"Stack trace: %@", [exception callStackSymbols]); } return retVal; } } 

从项目导航器中select断点标签。 然后按底部的“+”添加一个断点。 select添加exception断点。 确保exception断点被选中,所有exception,抛出。

现在,当你运行你的应用程序,一旦抛出exception,它将停止。 这将让你看到你打破的路线。

更新你可以尝试摆脱try / catch语句。 我从来没有见过像这样在应用程序中使用过的。

 int main(int argc, char *argv[]) { @autoreleasepool { int retVal = UIApplicationMain(argc, argv, nil, nil); return retVal; } } 

我花了一整天的时间重新创build整个项目。 新的白蚁有例外,有解释性的信息。 所以我想老应用程序是完全搞砸了。