有人可以解释可能出现在Interface Builder文档窗口中的占位符对象的种类吗?
我知道存在的占位符种类有:文件所有者,第一响应者和应用代表
链接:
答案 0 :(得分:9)
我从Apple的开发者网站Interface Builder复制了这个,希望这有帮助。
基本上用我自己的话来说,占位符包含程序中的所有内容,它们包含用户看到的所有内容,例如UIView
或UIImageView
,这些内容
Choose Appropriate Controller Objects在Cocoa和Cocoa Touch nib文件中,File的Owner占位符对象提供了应用程序与nib文件中对象之间的关键链接。加载nib文件时,必须为nib-loading例程提供指向应成为文件所有者的对象的指针。作为加载过程的一部分,nib加载代码会自动重新创建您指定的对象与连接到文件所有者的nib文件对象之间的任何连接。
在设计应用程序的体系结构时,考虑要管理nib文件的对象非常重要。仅存在一个File的Owner占位符对象并非没有充分理由。通常最好让单个对象协调nib文件及其内容的加载和管理。这种单点联系在应用程序的数据模型和用于呈现该数据模型的可视元素之间提供了所需的屏障,并且是模型 - 视图 - 控制器设计的核心。
除了File的Owner对象之外,您可以直接在nib文件中创建其他控制器对象来管理nib文件的子集。以这种方式使用多个控制器可以将窗口的行为划分为更易于管理的块。例如,如果窗口具有多个不同信息窗格,则可以创建单独的控制器对象来管理每个窗格。每个控制器将继续通过文件所有者获取其他信息。
在iPhone应用程序中,还可以在nib文件中包含除文件所有者之外的占位符对象。这些额外的占位符对象几乎总是用于表示应用程序已在使用的导航控制器和其他视图控制器。这些额外的占位符对象的存在并没有减少文件所有者的作用。 File的Owner对象仍然负责协调nib文件内容的整体行为。
答案 1 :(得分:3)
我想我在回复question时提供了一个彻底的答案。
另外,我会将App Delegate称为占位符。占位符是NIB文件中可用于建立与之连接的对象,但在加载该文件时未实例化。因此,当MainWindow.xib文件中有一个橙色多维数据集并且自定义类设置为“MyAppDelegate”时,会导致在加载NIB时实例化“MyAppDelegate”实例。作为一个反例,MainWindow.xib的文件所有者通常是“MyApplication”,并且在加载NIB时,MyApplication的实例将不会被实例化,它已经被分配和启动,并且正在进行加载。因此,文件的所有者是已存在的对象的占位符,而应用程序委托通常不是。