0

アクションシートに2つのボタンがあります。ボタンのいずれかをクリックすると、すべての生徒の記録が別のビューに表示されます。これらのレコードはすべてDBから取得する必要があります。現在、viewwillAppearメソッドにレコードを取得するロジックを配置していますが、ボタンをクリックすると画面が数秒間フリーズし、学生リストが表示されます。

私の理解では、レコードを取得するロジックは、学生リストビューのviewWillAppearメソッドにありました。ボタンをクリックすると、学生リストビューに直接移動し、学生リストビューでデータの読み込みを試みます。しかし、ボタンをクリックした後、アクションシートでボタンがフリーズしたのはなぜですか?または、ボタンをクリックした後に前のアクションシートでフリーズしないように、ロードレコードロジックを配置できる場所は他にありますか。

4

1 に答える 1

0
  1. SO に投稿する場合は、常に既存のコードを含める必要があります。それに応じて質問を更新することをお勧めします。FAQを参照してください。

  2. 「フリーズした」と言うとき、データで新しいビューが表示されるまでに遅延があったが、最終的には表示されたと言っていると思いますか? その場合、あなたのタスクは、遅延が発生した場所を特定する方法です。したがって、遅延が発生している場所を正確に特定できるように、さまざまなメソッドに NSLog ステートメントの挿入を開始することをお勧めします。新しいビューの読み込みに時間がかかりましたか? データを取得するには?などなど、問題を絞り込み、遅延の原因を特定しないと解決できません。問題を診断してトラブルシューティングするためのスキルを開発する必要があります。ところで、まだコードの診断方法がわからず、NSLog が役に立たない場合は、Apple' を参照することもできます。あなたのコードを通して。コード内で問題が発生している場所を正確に絞り込んだ後にのみ、ここに投稿する必要があります。

  3. 第 3 に、ほとんどの人は、viewWillAppear ではなく、viewDidLoad で新しいビューのデータをロードします。生徒リスト ビューのサブビューに移動してから生徒リストに戻った場合 (つまり、生徒リスト ビューが再表示された場合、つまり、viewWillAppear が再びトリガーされた場合)、データを再度ロードする必要がありますか?すでにロードされていますか?おそらくそうではありません。生徒リスト ビューを読み込んだ後に別のビューを読み込んでいない可能性があることはわかっていますが、最終的には (生徒の詳細ビューなど) 読み込む可能性があるため、ビューのデータを viewDidLoad に読み込むことをお勧めします (これにより、ビューが最初に読み込まれたときにのみトリガーされます)。

于 2012-05-04T03:25:29.560 に答える