【问题标题】:In iOS 5.1 app; Why can't I see the Exception?在 iOS 5.1 应用程序中;为什么我看不到异常?
【发布时间】:2012-04-30 01:24:21
【问题描述】:

我正在尝试将控制权从一个 TableViewController 传递给另一个 TableViewController,将其称为“A”,将其称为“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;
    }
}

【问题讨论】:

    标签: ios xcode4


    【解决方案1】:

    从项目导航器中选择断点选项卡。然后按底部的“+”添加断点。选择添加异常断点。确保检查异常断点,所有异常,抛出中断。

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

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

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

    【讨论】:

    • 谢谢比尔,但正如我的问题中提到的那样:即使我启用了“所有例外”。所以我已经按照你的建议做了。然而,发生了一些异常并且没有陷入困境。
    • 我删除了 Try, Catch 的东西并得到了相同的结果。
    • 无赖。您是否收到任何异常报告或输出?在加载任何内容之前,您的应用程序委托中必须有一些非常错误的地方。尝试在那里添加断点,看看它是否甚至进入那里。抱歉,我无法提供更多帮助。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多