Cocoa:是什么创建了链接到NIB文件的控制器类的实例?

时间:2010-02-04 20:48:01

标签: cocoa nib xib

这是关于Cocoa NIB文件的内部工作原理以及它们的支持框架类的问题。

有关一个简单的示例,请查看Apple货币计算器教程:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjCTutorial/01Introduction/01Introduction.html

如果打开MainMenu.nib文件,您将看到一个表示“Converter Controller”的对象。

当应用程序运行时,ConverterController类的实例将由应用程序中的某些内容实例化(NIB中的某些内容或支持NIB的框架)。

(不要将此与其他类混淆,Converter,其实例由ConverterController中的代码创建。)

我的问题是,是什么创建了这个ConverterController实例?它是NIB中的默认文件所有者对象吗?无论什么对象创建实例,该对象使用的代码是什么?在NIB或框架中必须有某些方法/功能说:

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

我希望看到该代码,当前用于创建ConverterController实例的特定代码。

我不想知道如何为ConverterController实例创建替换,或者通常如何手动实例化与NIB文件相关的类实例。

3 个答案:

答案 0 :(得分:2)

nib是对象的归档。它们是在Interface Builder中创建的,当加载nib时,其中的对象将被取消存档并链接起来。

答案 1 :(得分:1)

查看开发人员文档中的Resource Programming Guide文档。关于Nib文件的部分是一个很好的概述,“内置支持Nib文件”小节解释了如何在许多情况下加载nib文件。

答案 2 :(得分:1)

查看Info.plist文件。

其中一个部分是主Nib文件名。这是应用程序启动时取消归档的nib。通常,这是MainMenu.xib。

因为控制器对象在此主nib文件中,所以在取消归档nib文件时会创建它。