2016-08-18 9 views
0

誰もが古典的なdidFinishLaunchingMethodが無作為に走っているのを見ました。iOSアプリの複雑な起動ロジック:どこにあるべき?

CloudKitのように起動すると、非同期的にアプリケーションのデリゲートが間違った場所のように思えます。同期の確立、スナップショットの取得などが可能です。

私は、これらのものがアプリケーションが起動する最初のコントローラに入るという考えが嫌い、yoreの日から私を4GL tinkertoysに戻します。

しかし、ストーリーボードの流れを尊重する必要があります。私はこれについて何かを探し回っていない。そして残念なことに、最も広範なAppleの例であるListerは、ベストプラクティスの素晴らしいソースではありません。

答えて

1

これは、アプリケーションデリゲートがこの作業の開始をトリガーするのに適していますが、結果を処理するのには適していません。多くの場合、進捗状況/エラー/ユーザー情報の要求を表示する方法が必要です。したがって、あなたの起動画像からこのプロセスへの移行を処理し、メインアプリケーションへのフローを制御する「スプラッシュ」ビューコントローラのいくつかの形式を持つことは便利です。一般的に、この種のロジックは、他の状況では再利用可能なので、他のコントローラークラスに存在する必要があります。ストーリーボードはスプラッシュVCを初期コントローラにし、アプリケーションデリゲートはロジックを扱うデータコントローラクラスを作成して渡すことができ、VC(結果のデリゲート)を更新します。多くの場合、スプラッシュVCはデータコントローラを後続のVCに渡しますが、これは必須ではありません。

関連する問題