Nib 文件中包含哪些对象? [复制]

Posted

技术标签:

【中文标题】Nib 文件中包含哪些对象? [复制]【英文标题】:Which objects are contained in a Nib file? [duplicate] 【发布时间】:2016-11-30 16:35:59 【问题描述】:

一开始我以为 nib 只产生子视图(目标对象实例有一个所有者,即视图控制器)。

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

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

谢谢

【问题讨论】:

请不要一遍又一遍地问同一个问题。如果您的第一个问题不清楚,请编辑它。 抱歉,我删除了另一个问题。 【参考方案1】:

一个笔尖由它所包含的任何东西组成,意思是放在那里的任何东西。不过,从您的问题来看,好像您可能会问故事板是如何工作的,因为它们使用您不直接与之交互的笔尖。

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

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

【讨论】:

从我刚刚读到的内容,我相信如果你有一个已经存在的对象,你想成为未来的所有者对象,当你创建一个出口连接时,那个已经存在的对象instance 现在将“神奇地”成为 nib 文件的一部分。因此,即使所有者实例不需要 nib 存在,它仍然成为 nib 的一部分,当加载 nib 时,您现在有两个单独的实例,一个是原始所有者对象,但现在它有一个新的引用它拥有的实例的属性。对吗? 没有魔法,它不会成为 nib 文件的一部分。你读过我书中关于所有者和代理的部分吗?我在这里用一张漂亮的图表来解释网点:apeth.com/iosBook/ch07.html#_outlet_connections 谢谢马特,这张图与我看到的有点不同,我会看一下这张图。非常感谢! 好吧,现在根据我的理解,当加载 nib 时,nib 中的代理所有者对象连接到实际的所有者实例,因为所有者实例已使用“所有者”参数加载了 nib设置为“自我”。从那里,出口的字符串值用于进一步分配从 nib 加载生成的新创建的实例,到所有者类中相应的命名引用变量。谢谢。

以上是关于Nib 文件中包含哪些对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 CellForRowAt 中包含用于自定义 UIView 的 nib 文件,在滚动时会产生 jerk

在 nib 文件中加载 nib 文件

从 Cocoa 中的其他 nib(即 Interface Builder)加载 nib

如何使用 xargs 复制名称中包含空格和引号的文件?

如何在 json 中包含图像文件? [复制]

2.Makefile文件中包含哪些规则?