私はこれをするのが好きです:
//in .pch file
#import "Includes.h"
//in Includes.h
#import "AppDelegate.h"
#define APPDELEGATE() (AppDelegate *)[[UIApplication sharedApplication]delegate]
次に、appDelegateに何かを尋ねる必要がある場所ならどこでも、私が言うだけです
[APPDELEGATE() someMethod];
AppDelegate のプロパティを別の場所に置くことは、悪い考えのように思えます。その参照(sharedApplication)を取得する簡単な方法がすでにあることを除いて、理由は言えません。
この場合、おそらく開発者の便宜のためです。ただし、どこでも AppDelegate への参照が「必要」であることは、おそらくスパゲッティ コードと不適切なカプセル化の指標であると言わざるを得ません。
*ちなみに、appDelegate 内にいくつかの「グローバル」変数への参照を保存しています。これは、カプセル化が不適切であることを示している可能性もあります...これが、最初に APPDELEGATE() 宣言を使用する理由です ;-)
**NSDateFormatter のような、非常に頻繁に必要になるが、必ずしもクラス内に「存在する」とは限らないもの (すべてのインスタンスに 1 つ必要ではありませんが、複数のインスタンスに適用できます)、または特定の状態への参照、 「グローバル アプリケーションのフォント サイズ」など