2011-08-04 9 views
1

私はiphone開発で新しく、別のクラスでアクセスするために使用する配列が必要でした。私のシニアはApp Delegateで宣言し、必要なので、私はそれのための行を書いた私たちのアプリケーションでアプリケーションデリゲートを使用する理由

MyAppAppDelegate * appObject = 
       (MyAppAppDelegate*)[[UIApplication sharedApplication]delegate]; 

私は自分の仕事を成功させましたが、私はそれを100%得ることができませんでした。誰かが、なぜこれを使用するのか、これを使用する正確な状況を教えてくれますか?

+1

これは私に悪いデザインのようなにおい。あなたは効果的に配列を[3次全体]にしました(http://boredzo.org/blog/archives/2011-03-18/application-delegate-singletons)。代わりに、[依存性注入](http://en.wikipedia.org/wiki/Dependency_injection)を検討してください。 –

答えて

1

AppDelegateは、ウィンドウを含むアプリケーションを実行するときに最初に読み込まれます。したがって、プロジェクト全体でアクセスする変数とオブジェクトは、AppDelegateで宣言されています。インスタンスを作成するだけで、AppDelegateのすべてのオブジェクトにアクセスできます。

1

ApplicationDelegate シングルトンクラスとして有用であることができますが、慎重にそれを使用する必要があります - と、この上の様々な意見があります - しかし、あなたは、いくつかのグローバルタイプのプロパティやメソッドを持っている場合は、様々な他のクラスから呼び出したいです、私は,のように強調していますが、ApplicationDelegateはこれらを追加するのに最適な場所です。

はい、それは悪いデザインですが、あなたが慎重で@Sedate Alienが言及している場合は、依存性注入を見てください。

ApplicationDelegateの目的は、方法によって、あなたがホーム画面に戻るときは、ホーム画面から戻ってきたときに、あなたのアプリケーションをロードするなどのイベントを処理するために主にある、など

関連する問題