0

これは、Cocoa NIB ファイルの内部動作と、それらをサポートするフレームワーク クラスに関する質問です。

便利な例については、Apple Currency Calculator チュートリアルをご覧ください: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjCTutorial/01Introduction/01Introduction.html

MainMenu.nib ファイルを開くと、「Converter Controller」を表すオブジェクトが表示されます。

アプリが実行されると、ConverterController クラスのインスタンスがアプリ内の何か (NIB 内の何か、または NIB をサポートするフレームワーク) によってインスタンス化されます。

(これを、ConverterController のコードによって作成されたインスタンスを持つ別のクラス、Converter と混同しないでください。)

私の質問は、ConverterController のこのインスタンスを作成するのは何ですか? NIB のデフォルトの File's Owner オブジェクトですか? インスタンスを作成するオブジェクトが何であれ、そのオブジェクトが使用するコードは何ですか? NIB またはフレームワークのどこかに次のようなメソッド/関数が必要です。

ConverterController *someVarName = [[ConverterController alloc] init];

そのコード、ConverterController インスタンスを作成するために現在使用されている特定のコードを確認したいと思います。

ConverterController インスタンスの代替を作成する方法や、NIB ファイルに関連するクラス インスタンスを手動でインスタンス化する一般的な方法を知りたくありません。

4

3 に答える 3

2

nib はオブジェクトのアーカイブです。それらはInterface Builderで作成され、ペン先がロードされると、その中のオブジェクトがアーカイブ解除され、リンクされます。

于 2010-02-04T20:56:16.983 に答える
1

Info.plist ファイルを見てください。

そこにあるセクションの 1 つは、メイン Nib ファイル名用です。これは、アプリケーションの起動時にアーカイブ解除される nib です。通常、これは MainMenu.xib です。

コントローラ オブジェクトはこのメインの nib ファイル内にあるため、nib ファイルが解凍されるときに作成されます。

于 2010-02-23T09:14:16.180 に答える
1

開発者向けドキュメントのResource Programming Guideドキュメントを見てください。Nib ファイルに関するセクションは概要を説明したもので、サブセクション「Nib ファイルの組み込みサポート」では、さまざまなケースで nib ファイルがどのようにロードされるかを説明しています。

于 2010-02-23T09:03:30.547 に答える