-1

好的,我知道如何通过以下代码从 xib 加载自定义单元格:

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustpmCellView" owner:self options:nil];
cell = (CustomCell *)[nib objectAtIndex:0];

但是有人可以解释第一行是做什么的吗?

我每次都觉得很愚蠢,不知道它是如何工作的。

4

2 回答 2

0

根据文档

loadNibNamed:owner:options:

取消归档位于接收器包中的 nib 文件的内容。

- (NSArray *)loadNibNamed:(NSString *)name owner:(id)owner options:(NSDictionary *)options

参数

name nib 文件的名称,不需要包含 .nib 扩展名。

所有者

分配为 nib 的 File's Owner 对象的对象。

选项

包含打开 nib 文件时要使用的选项的字典。有关此字典的可用键列表,请参阅“Nib 文件加载选项”。</p>

返回值

包含 nib 文件中顶级对象的数组。该数组不包含对文件所有者或任何代理对象的引用;它仅包含在取消归档 nib 文件时实例化的那些对象。您应该手动保留返回的数组或其中包含的对象,以防止 nib 文件对象过早释放。

于 2013-07-24T09:09:57.793 回答
0
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustpmCellView" owner:self options:nil];

loadNibNamed返回您的 xib 下的所有视图。因此,我们将其保存在数组中。在这里说CustpmCellView下的所有视图都将被获取并保存在数组nib中。

cell = (CustomCell *)[nib objectAtIndex:0];

我们从数组中获取第一个视图,因为这是我们想要的视图,然后我们正在转换并分配给单元对象。

我们需要为 中的每个单元格分配新视图UITableView,因此每次需要新单元格时,我们都使用上面的代码片段来做到这一点。

编辑

[NSBundle mainBundle]在 iPhone 中 [NSBundle mainBundle] 的含义有什么解释?

于 2013-07-24T09:00:54.917 回答