工程启动之后,是正常显示的,一旦上拉刷新之后就崩溃了。
以前这样写是没问题的啊 = =
代码如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.selected) {
static NSString *identifier = @"cell1";
ChooseTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[ChooseTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
cell.backgroundColor = [UIColor redColor];
return cell;
} else {
static NSString *identifier = @"cell2";
UpTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[UpTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
cell.backgroundColor = [UIColor cyanColor];
return cell;
}
return nil;
}
错误提示:
Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:]
原因:
因为 cellForRowAtIndexPath
正在返回一个 nil
值,而
configureCellForDisplay
希望返回一个 UITableViewCell
值。
解决办法:
返回一个 UITableViewCell
值即可。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// **添加一个 UITableViewCell 类型,最后返回 cell 即可。**
static NSString *identifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
cell.backgroundColor = [UIColor yellowColor];
if (self.selected) {
static NSString *identifier = @"cell1";
ChooseTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[ChooseTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
cell.backgroundColor = [UIColor redColor];
return cell;
} else {
static NSString *identifier = @"cell2";
UpTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[UpTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
cell.backgroundColor = [UIColor cyanColor];
return cell;
}
return cell;
}
参考链接:
Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:]
网友评论