2011-01-19 10 views
1

デリゲートを使用してグローバルインスタンス/変数にアクセスすることをお勧めします。 (私は 'extern NSInteger myInstance'のようなモードが嫌いです)Cocoaのデリゲート経由でグローバルインスタンス/変数にアクセスするには?

これは、すべてのグローバルインスタンス/変数がデリゲートオブジェクトにあることを意味します。ココアタッチで、私はグローバルインスタンス(myInstanceの)にアクセスするために

appDelegate =(AppDelegate *)[[UIApplication sharedApplication] delegate]; 

を使用することができます知っているが、私はそれはココアモードと同じであるかどうかわからないです。

は、任意のコメントに

おかげCoocaで

InterDevの

答えて

4

ようこそ、NSAppは共有NSApplicationインスタンスを表すグローバル変数です。デリゲートを取得するには、単純に使用することができます。

id delegate = [NSApp delegate]; 

アプリケーションデリゲートの設定は非常に簡単です。 MainMenu.xibでは、File's Ownerが共有NSApplicationインスタンスです。デリゲートクラスをMainMenu.xibでインスタンス化し(オブジェクトを作成し、そのタイプをデリゲートクラスに設定する)、File's Ownerdelegateのアウトレットをそのインスタンスにドラッグします。

+0

私はあなたが言ったようにしましたが、デリゲートは依然として0x0 – arachide

+0

を返す@implementation AppController @synthesize appDelegate; - (id)init { [super init]; \t NSApplication * app = [NSApplication sharedApplication]; \t \t appDelegate =(AppDelegate *)[NSApp delegate]; – arachide

+0

appDelegate stil returns 0x0 – arachide

関連する問題