这是关于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文件相关的类实例。
答案 0 :(得分:2)
nib是对象的归档。它们是在Interface Builder中创建的,当加载nib时,其中的对象将被取消存档并链接起来。
答案 1 :(得分:1)
查看开发人员文档中的Resource Programming Guide文档。关于Nib文件的部分是一个很好的概述,“内置支持Nib文件”小节解释了如何在许多情况下加载nib文件。
答案 2 :(得分:1)
查看Info.plist文件。
其中一个部分是主Nib文件名。这是应用程序启动时取消归档的nib。通常,这是MainMenu.xib。
因为控制器对象在此主nib文件中,所以在取消归档nib文件时会创建它。