0

アプリケーションに少し問題があります。
情報を解析してデータベースに保存するよりも情報を受け取るWebサービスがあります。

私が欲しいのは、すべての情報がデータベースにアップロードされるまでスプラッシュ画面(またはUIViewController)を表示することです(FMDBは私が使用しているデータベースです)。

現在、私が画面を一定期間ロードしていて、それよりも削除されているもの。私が使用しているコードは次のとおりです。
[self performSelector:@selector(removeSplashScreen) withObject:nil afterDelay:30];

問題は、一部の情報がデータベースにロードされ、他の情報はロードされないことです。

この問題を解決する方法についてのヒントを教えてください。

注:スプラッシュ画面は実際にはスプラッシュ画面(Default.png)ではありません。これは、スプラッシュ画面のUIViewController後に表示されるだけです。私はこれをスプラッシュ画面と呼んでいます。

ありがとう

4

2 に答える 2

1

これを行うには、解析の完了を示す通知またはデリゲートメソッドを提供します。次に、これを使用してスプラッシュ画面を削除できます。それは、データがロードされるまでスプラッシュ画面を表示するのは良いアプローチではないと言っています。データのロードにかなりの遅延がある場合はどうなりますか。あなたのアプローチを再考してください。このアプローチは、通常、Appleにはうまくいきません。

于 2011-09-13T10:35:42.037 に答える
0

データベースコード(ダウンロード、解析、保存)からコールバック関数を使用できる場合は、その関数を使用してスプラッシュスクリーンコントローラーを削除します。データをデータベースに保存した後、それで何をしていますか?テーブルやウェブビューなどに表示していますか?これに対する答えを知っていると、スプラッシュ画面の目標に対するソリューションを最適化するのに役立ちます。

編集:

if (nodeCount == 0 && indexPath.row == 0)
{
     cell.detailTextLabel.text = @"Loading…";

     return cell;
}// Leave cells empty if there's no data yet
if (nodeCount > 0)
{
     //fill cells with actual data that is present in database
     return cell;
}
于 2011-09-13T10:19:31.270 に答える