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

デバッグを支援するには、「例外ブレークポイント」を追加する必要があります。ブレークポイントナビゲーター(左パネルのタブの1つ)に移動し、左下の小さな+ボタンをクリックします。[例外ブレークポイントの追加]を選択し、[OK]をクリックします。

アプリを再度実行すると、エラーの行にブレークポイントが表示されます。

于 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 に答える