Xcode:sigabrt错误

时间:2012-05-25 07:39:01

标签: ios xcode sigabrt lldb

我是iOS编程新手,我正在尝试使用我的应用程序运行表格视图,但我找不到任何有关应用程序不断中止的可靠信息。这是委托文件中的代码,任何人都可以告诉我,我做错了那导致错误吗?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    listTopics = [NSMutableArray arrayWithCapacity:8];
    Topics *topic = [[Topics alloc]init];
    topic.topic = @"Movies";
    [listTopics addObject:topic];
    topic = [[Topics alloc]init];
    topic.topic = @"Games";
    [listTopics addObject:topic];
    topic = [[Topics alloc]init];
    topic.topic = @"TV";
    [listTopics addObject:topic];
    topic = [[Topics alloc]init];
    topic.topic = @"Cars";
    [listTopics addObject:topic];
    topic = [[Topics alloc]init];
    topic.topic = @"Actors";
    [listTopics addObject:topic];
    topic = [[Topics alloc]init];
    topic.topic = @"Sports";
    [listTopics addObject:topic];
    topic = [[Topics alloc]init];
    topic.topic = @"Brands";
    [listTopics addObject:topic];
    topic = [[Topics alloc]init];
    topic.topic = @"Music";
    [listTopics addObject:topic];
    topic = [[Topics alloc]init];

    UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;      
    TopicsViewController *topicsViewController = [[navigationController viewControllers]objectAtIndex:0];
    topicsViewController.listTopics = listTopics;
    return YES;
}

3 个答案:

答案 0 :(得分:3)

为了帮助调试,您应该添加一个“异常断点”。 转到断点导航器(左侧面板上的一个选项卡),然后单击左下角的小+按钮。选择“添加异常断点”,然后单击“确定”。

再次运行应用程序,你应该在错误行找到一个断点。

答案 1 :(得分:1)

狂野猜测:你的topicViewController是nil或者不是TopicViewController。

您可能还会遇到一些内存问题,因为您没有发布正在创建的对象。 (或者您正在使用ARC?)。 您也可以检查您正在销毁主题对象的主页。

请提供更多代码供我们帮助您。

此致

答案 2 :(得分:1)

我假设您要显示一个导航控制器,它将表视图控制器作为根视图控制器,这是您的TopicsViewController。

在你的

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

您需要设置窗口的rootViewController属性的方法。你不能得到它,因为你还没有设置。之后你需要让它可见。以下代码可以帮助您

TopicsViewController *topicsViewController = [[TopicsViewController alloc] init]; 
// or 
TopicsViewController *topicsViewController = [[TopicsViewController alloc]initWithStyle:UITableViewStylePlain];
// depends if it is a view controller or table view controller

topicsViewController.listTopics = listTopics;

UINavigationController *topicsNavController = [[UINavigationController alloc] initWithRootViewController:topicsViewController];
self.window.rootViewController = topicsNavController;
[self.window makeKeyAndVisible];
return YES;

请注意,如果您不使用ARC,则需要释放您在其上调用alloc的对象。