すべてのアプリケーションにはアプリケーションデリゲートがあります。アプリケーションデリゲートはCocoa/Cocoa-touchアプリケーションに登録されています
"SomeClass"(UIApplicationDelegateのサブクラス)が私のアプリケーションの代理人であることを指定/登録するコードのどこにありますか?
すべてのアプリケーションにはアプリケーションデリゲートがあります。アプリケーションデリゲートはCocoa/Cocoa-touchアプリケーションに登録されています
"SomeClass"(UIApplicationDelegateのサブクラス)が私のアプリケーションの代理人であることを指定/登録するコードのどこにありますか?
、これはラインとmain.mで行われます。UIApplicationMain()
の4番目の引数がnil
されていない場合
UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
、関数は、指定されたクラスのインスタンスを作成し、それを割り当てます。 UIApplication
オブジェクトのデリゲートとして。
あなたはストーリーボードを使用しない場合、接続はアプリケーションデリゲートオブジェクトが順番にUIApplicationMain()
機能によって作成されたUIApplication
インスタンスでファイルの所有者(の代理人として作成され、接続されMainWindow.xib
で作られて)。
それはあなたがストーリーボードを使用するかどうかにかかわらず、 'UIApplicationMain'で終わりました。変更がいつ起こったのか分かりませんが、Xcode 4.2.1では、Cocoa Touchテンプレートのどれもメインペンを使用していません。 –
これは私が自分のアプリケーションのためのアプリケーションデリゲートを見つける方法です...
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
アプリデリゲートのクラス名は、単に「AppDelegate」に続くアプリの名前です。プロジェクトのファイルリストにそのクラスが表示されますが、自動的に作成されます。ファイル "MyAppDelegate.m"を探してください。
このクラスには、 "windowing"アプリケーションのMainWinodw.xibの代理責任が割り当てられています。ウィンドウアプリケーションを使用していない場合は、 "main.m"ファイルのUIApplicationMain
への呼び出しで割り当てが見つかります。あなたはストーリーボードを使用する場合は
これは 'UIApplicationDelegate'のサブクラスではありません。これは 'UIApplicationDelegate'プロトコルに準拠したクラスです – albertamg
さらに、ニックピックするには、デリゲートのクラスではなくクラスの_instance_です。 – Monolo