さまざまなインターネット サイトから大量のデータを取得する必要がある 1 つのビューを持つ iPhone アプリがあります。したがって、ロードに必要な時間は許容できません。「applicationDidFinishLaunching」メソッド中にビューをロードする方法があるかどうか疑問に思っていたので、遅延はナビゲーションの途中ではなくアプリの起動時に発生します。
どうもありがとうございました!
ビューをできるだけ早くロードしてから、バックグラウンド スレッドまたは非同期リクエストを起動してデータを取得したいと考えています。
初期ロード中にアプリケーションをスリープ状態にすることはお勧めできません。SpringBoard は、ロードが完了するまでに 30 秒以上かかるアプリケーションを終了すると思います。
ユーザーへの目に見えるフィードバック (アニメーション化された UIActivityView など) なしでアプリに何かをさせるのは、ユーザー エクスペリエンスが悪いことです。
データを非同期でロードすることをすでに検討しましたか? 読み込み中に UI がブロックされることはありません。たとえば、アプリがデータを読み込んでいるときに、素敵な読み込みホイールを表示できます。これは、すべての優れたアプリがこれを行う方法です。
初期ビューに「データ」ビューとは別の viewController がある場合は、dataView への参照を appDelegate に追加してから、次のようにすることができます。
if (self.curAccountManager == nil) {
self.curAccountManager = [[accountManagerController alloc] initWithNibName:@"accountManager" bundle:[NSBundle mainBundle]];
if (![self.curAccountManager isViewLoaded]) {
UIView *tmpView = self.curAccountManager.view;
tmpView = nil;
}
}
これにより、ビューが読み込まれます。しかし、大量の読み込みを行っている場合、ユーザーが切り替えたときにうまく応答しない可能性があります。上記の提案に従い、データ ビューでデータを非同期的にロードして、少なくともユーザー ステータスまたは部分的な結果を表示できるようにすることをお勧めします。