Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode Nib文件中包含哪些对象?_Xcode_Nib - Fatal编程技术网

Xcode Nib文件中包含哪些对象?

Xcode Nib文件中包含哪些对象?,xcode,nib,Xcode,Nib,起初,我认为nib只生成子视图(具有所有者的目标对象实例,即视图控制器) 现在,根据我的理解(或误解),在使用插座时,视图控制器(所有者)实际上包含在同一个nib文件中 这是否意味着视图控制器和视图都由nib文件“生成”或实例化 谢谢笔尖由它所包含的任何东西组成,意思是你放在那里的任何东西。不过,从你的问题听起来,好像你在问故事板是如何工作的,因为它们使用的笔尖不是你直接接触的 在故事板中,每个场景由两个笔尖组成:一个包含视图控制器,另一个包含视图控制器的视图(及其子视图和其他所有内容) 在表示

起初,我认为nib只生成子视图(具有所有者的目标对象实例,即视图控制器)

现在,根据我的理解(或误解),在使用插座时,视图控制器(所有者)实际上包含在同一个nib文件中

这是否意味着视图控制器和视图都由nib文件“生成”或实例化


谢谢

笔尖由它所包含的任何东西组成,意思是你放在那里的任何东西。不过,从你的问题听起来,好像你在问故事板是如何工作的,因为它们使用的笔尖不是你直接接触的

在故事板中,每个场景由两个笔尖组成:一个包含视图控制器,另一个包含视图控制器的视图(及其子视图和其他所有内容)


在表示视图控制器视图的xib文件中,视图控制器本身只是一个代理对象(文件的所有者);它不是从nib生成的,而是在nib加载时已经存在(这就是为什么它可以充当文件的所有者)。事实上,这也是故事板场景中第二个nib文件的工作原理。

请不要反复问同样的问题。如果您的第一个问题不清楚,请编辑它。抱歉,我想我删除了另一个问题。根据我刚才阅读的内容,我相信可能是这样的情况:如果您已有一个对象,并且希望成为未来的所有者对象,那么当您创建插座连接时,已经存在的对象实例现在将“神奇地”成为nib文件的一部分。因此,即使所有者实例不需要nib存在,它仍然成为nib的一部分,并且当加载nib时,您现在有两个单独的实例,一个是原始所有者对象,但现在它有一个引用其拥有的实例的新属性。正确吗?没有魔法,它不会成为nib文件的一部分。你读过我书中关于所有者和代理人的部分吗?我在这里用一个漂亮的图表来解释插座:谢谢马特,这个图表和我看过的有点不同。我会看一下这个。非常感谢!好的,现在根据我的理解,当加载nib时,nib中的代理所有者对象连接到实际的所有者实例,因为所有者实例已经加载了nib,并且“owner”参数设置为“self”。从那里,outlet的字符串值用于进一步将从nib加载生成的新创建实例分配给owner类中相应的命名引用变量。谢谢