0

iPhone用の小さな音楽ゲームを書いています。私はほぼ完了しています。これが、私が展開を妨げている唯一の問題です。これを解決するための助けは大歓迎です。

これが私がすることです: 私の appDelegate で、メニュービュースクリーンをウィンドウに追加します。menu-view-screen はコンテナーとして機能し、ユーザーに表示されるビューを制御します。

つまり、メニュー ビュー画面に 4 つのボタン (新しいゲーム、オプション、よくある質問、ハイスコア) が表示されます。ユーザーがボタンをクリックすると、次のようになります。

 if (self.gameViewController == nil)
 {
  GameViewController *viewController = [[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil];
  self.gameViewController = viewController;
  [viewController release];
 }
 [self.view addSubview:self.gameViewController.view];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleSwitchViewNotificationFromGameView:) name:@"SwitchView" object:gameViewController];

ユーザーがメニューに戻ると、次のコードが実行されます。

 [[NSNotificationCenter defaultCenter] removeObserver:self];
 [self.gameViewController viewWillDisappear:YES];
 [self.gameViewController.view removeFromSuperview];

これはすべての画面で正常に機能しますが、ゲーム画面では機能しません (これはユーザー インタラクションが山積みになっている唯一の画面です)。これは、iPhone の応答性 (トーンを再生するとき) が非常に遅くなることを意味します。初めてゲームビューを表示したときのパフォーマンスは良好です。menu-views-container-subviews に再度追加するとすぐに遅くなり始めます (addsubview) (基本的に新しいゲームを開きます) これを引き起こす (または回避する) アイデアはありますか?

ありがとうございます

よろしくトム

4

1 に答える 1

0

わかりました、私の頭の上から、これはコントローラーの問題のようには聞こえません。他の何かが実行されたままになっている、またはメモリを食いつぶしているという問題のように思えます。プロファイリング ツールを使用して、CPU が消えている場所を特定できるかどうかを確認することをお勧めします。たとえば、多くのことを行っているオブジェクトのメモリリークが発生している可能性があります。

于 2010-05-18T03:15:06.640 に答える