0

私の(非常に単純な)アプリケーションでは、

--> 起動時にメイン ビューに 1 つのサブビュー (「スプラッシュ」という名前) をロードしました。このように (私の mainView クラスで) :

-(void)awakeFromNib{
 [self addSubview:splash];
}

--> サブビュー「スプラッシュ」のボタン (「LoadData:」という名前の IBAction を呼び出す) をクリックしてロードされる UITableView (「myTable」という名前) もあります。(すべてのビューは interfaceBuilder で作成され、各ビューには xCode プロジェクトに対応するクラスがあります)

私がしたいことは、配列に格納されたこのデータを使用している 2 番目のサブビュー (「myTable」) をロードする前に、SQLite データベースから大量のデータ (750 エントリ) をプリロード (キャッシュ) することです。

これを実行するために、「RefreshData:」というメソッドがあり、特定の時間に呼び出されて結果を配列に格納します。この配列は、このデータを表示するために UITableView で使用されます。すべてが順調に進んでいますが...

  • 「mainView」クラスの「awakeFromNib」メソッドの最後で「RefreshData」メソッドを呼び出すと、アプリが最初の画面 (「スプラッシュ」という名前) を表示するのに約 15 秒かかります。良くありません。
  • IBActionの「LoadData」内で「RefreshData」を呼び出すと、UITableViewが画面に表示されるまでに約13秒かかります。まったく良くありません。

したがって、問題は次のとおりです。最初のサブビュー(「スプラッシュ」)が画面に表示された後、ユーザーが UITableView をロードするボタンをクリックする前に、「RefreshData」メソッドを呼び出す方法はありますか?

どんな助けでも大歓迎です、そして私の悪い英語をお詫び申し上げます!

4

1 に答える 1

0

少し後で refreshData を呼び出してみてください。

-(void) viewDidAppear:

また、SQL 要求が GUI をロックしている場合は、おそらく新しいスレッドでデータを引き出すことを検討する必要があります (SQL がこれを行ったと思いましたが)。

于 2009-11-23T13:32:47.953 に答える