まず、アプリケーションデリゲートが、アプリケーションのデリゲートであるWhat describes the Application Delegate best? How does it fit into the whole concept?
を参照してください。他にどこに置かなければならないか分からないものはすべて保持する場所ではありません。これは、グローバルの格納場所ではありません。これはUIApplication
オブジェクトの代理人です。したがって、アプリケーションの起動、終了、バックグラウンドの切り替えなどに関連するコードを記述するのは適切な場所です。アプリケーションがOSにどのように適合しているかに関係します。
アプリデリゲートはコントローラなので、データを保持してはいけません。データはモデルに入ります。アプリケーションデリゲートは、起動時にモデルを作成して他のコントローラに渡すことができますが、モデルへのAPIではありません。多くの場合、モデルは、アプリケーションデリゲートによって作成されるのではなく、シングルトンです。両方のアプローチには利点があります。
ほとんどのサンプルコードでは、単純な例では少し少ないコードしか必要としないため、モデルのコードはアプリケーションデリゲートに配置されています。しかし、実際のプログラムでは、アプリケーションのデリゲートをあまりにも複雑にし、コードの再利用を著しく傷つけます。あなたのアプリケーションデリゲートは一般的にはかなり小さく、その中のメソッドのほとんどは<UIApplicationDelegate>
の一部でなければなりません。
私はここでLavaSliderの答えが好きです。http://stackoverflow.com/questions/8421138/importing-appdelegate – Rhubarb