现在我们必须在ViewDidLoad -
中的某处使用此代码[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier];
并且我不确定旧方法有什么问题,通过检查单元格是否实际上由旧方法中的队列返回
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
让我感到困惑的是,为什么在不相关的地方使用一些仲裁方法调用,这是什么"注册"方法呢?
答案 0 :(得分:2)
从iOS 5开始,Apple推出了一种从NIB文件中实例化细胞的快捷方法,该方法有三个阶段:
注册NIB对象只需要在控制器的生命周期内发生一次,因此放置代码的一个显而易见的地方是在tableView控制器的viewDidLoad
方法中:
cellIdentifier = @"CustomCell";
[tableView registerNib:[UINib nibWithNibName:@"customCell" bundle:nil]
这需要两个参数:
nibWithNibName
方法NSString
单元格标识符在NIB注册用作单元格后,dequeueReusableCellWithIdentifier
方法将执行以下两项操作之一:
dequeueReusableCellWithIdentifier
将创建一个
注册NIB。 这两件事都发生在幕后,因此现在不再需要手动检查单元格的存在。 dequeueReusableCellWithIdentifier
将为您处理所有这些。