私はAppleの「あなたの最初のiOSアプリケーション」ガイドを読みましたが、そこにあるすべてのものは私には非常に明確に思えます。ただし、XCodeで提供されるViewベースのiOSアプリケーションテンプレートがどのように機能するかを理解しようとすると、いくつかの興味深い難問に遭遇します。
アプリケーションがメインのnibファイル名(通常はMainWindow.xib)を*-Info.plistファイルから取得することを理解しています。私が理解していないのは、XCodeは、このビューベースのアプリケーションテンプレートでデフォルトで作成されたコントローラーに関連付けられているnibファイルをどのように知るのかということです。このガイドでは、ウィンドウベースのアプリケーションから始めて、次のようなものを「作成する必要があります」。
MyViewController *aViewController = [[MyViewController alloc]
initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle]];
[self setMyViewController:aViewController];
これは完全に理にかなっています。ただし、ビューベースのiOSアプリケーションテンプレートにはそのようなものはなく、オプション「ユーザーインターフェイスにXIBを使用」を使用してUIViewControllerサブクラスを作成した場合、そもそもこのペン先の仕様は実際には必要ありませんでした。 "チェックしました。私の質問は、XCodeはどのnibがこのコントローラーに関連付けられているかをどのように知るのか、つまり、この接続をいくつかのファイルに保存するのか、それともある種の規則(おそらくコントローラーとnibファイルの同じ名前)によって行うのかということです。さらに、「Loaded from "MyViewBasedAppController"」サブタイトルは、MainWindow.xib内のInterface Builderのコントローラーのビューのどこから来ていますか?コントローラーを手作業で追加した場合は絶対に存在しないので、XCodeが背後でどのような魔法を使っているのか興味があります。