在iOS 5.1应用程序中;为什么我看不到异常?

时间:2012-04-18 15:25:30

标签: ios xcode4

我正在尝试从一个TableViewController传递控件,将其称为'A'到另一个TableViewController,将其称为'B'。即使我启用了“所有异常”,我也会在主要的第20行陷阱:这是:             retVal = UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate] 注:在第20行的最右边是“线程1:断点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;
    }
}

2 个答案:

答案 0 :(得分:1)

从项目导航器中选择断点选项卡。然后按底部的“+”添加断点。选择“添加异常断点”。确保选中Exception Breakpoint,All Exceptions,Break on throw。

现在,当您运行应用程序时,只要抛出异常,它就会停止。这将让你看到你破线的那条线。

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

int main(int argc, char *argv[]) {

    @autoreleasepool {
        int retVal = UIApplicationMain(argc, argv, nil, nil);
        return retVal;
    }
}

答案 1 :(得分:0)

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