对cell进行提前注册和没有提前注册的区别

cell的提前注册方法

 [self.tableView registerClass:[HMSQDeliveryHeaderCell class] forCellReuseIdentifier:NSStringFromClass([HMSQDeliveryHeaderCell class])];

在tableview的代理方法中使用时候

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

提前注册了cell情况,

//这个cell返回的不是空值,可是有值的
HMSQDeliveryHeaderCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([HMSQDeliveryHeaderCell class])];

没有提前注册cell的情况

//这个时候cell返回的空值
 HMSQDeliveryHeaderCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([HMSQDeliveryHeaderCell class])];
//这个可以重写 initWithStyle:style reuseIdentifier:reuseIdentifier方法,可以自定义舒适化需要的数据
            if (!cell) {
                cell = [[HMSQDeliveryHeaderCell alloc]initWithStyle:UITableViewCellStyleDefault deliveryStyle:self.style reuseIdentifier:NSStringFromClass([HMSQDeliveryHeaderCell class])];
            }

你可能感兴趣的:(对cell进行提前注册和没有提前注册的区别)