Objective C : loadNibNamed 方法:它是如何工作的?

Objective C : loadNibNamed method: how does it work?

我会知道 NSBundle class 的 loadNibNamed 是如何工作的;在一些文档中,我发现类似

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL];

没有return值;只是在方法内部调用(例如 cellForRowAtIndexPath 如果我想自定义我的单元格)。在其他文件中我发现:

NSArray* vett=[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL];

在这种情况下,例如,在 cellForRowAtIndexPath 中,我可以

 return [vett lastObject];

或类似的东西。 后一种方法在我看来很清楚;我将笔尖加载到矢量中,然后使用矢量元素。问题是了解首先要做什么:

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:NULL];

没有 return 值,没有单元格引用...我笔尖的对象在哪里?他们是如何处理的?我不明白它是如何工作的

例如,您有一个带有自定义笔尖的子类 UIView @"CustomView"

您可以加​​载它:

    NSArray * arr =[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil];
    CustomView * customView = [arr firstObject];

此方法 returns 笔尖中对象的数组。例如,如果你想实例化一个自定义视图,你将希望以 anthu 描述的方式使用 return 值。

NSArray * arr =[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:nil options:nil];
CustomView * customView = [arr firstObject];

但是,如果您想使用 xib 来配置文件的所有者(请注意,您可以将所有者传递给此方法),您可能对 returned 的数组不感兴趣。例如。如果 xib 将文件所有者的 IBActions 和 IBOutlets 连接到 xib 中的元素。

[[NSBundle mainBundle] loadNibNamed:@"mynib" owner:self options:nil];

您也可以结合使用这两种方法。