好的,我知道如何通过以下代码从 xib 加载自定义单元格:
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustpmCellView" owner:self options:nil];
cell = (CustomCell *)[nib objectAtIndex:0];
但是有人可以解释第一行是做什么的吗?
我每次都觉得很愚蠢,不知道它是如何工作的。
好的,我知道如何通过以下代码从 xib 加载自定义单元格:
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustpmCellView" owner:self options:nil];
cell = (CustomCell *)[nib objectAtIndex: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 文件对象过早释放。
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] 的含义有什么解释?