0

我是 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;
}
4

3 回答 3

3

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

再次运行应用程序,您应该会在错误行获得一个断点。

于 2012-05-25T07:41:59.627 回答
1

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

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

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

问候

于 2012-05-25T07:59:32.283 回答
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 的对象。

于 2012-05-25T08:00:50.037 回答