最近在使用storyboard直接拖拽UITableViewController使用的时候,遇到了unable to dequeue a cell with identifier的问题。
后面查询解决方案如下:
registerClass我记得是iOS6新加的
iOS6新增了这个方法
在此之前cell的重用写法是
而之后多了这种写法
区别在于之前的写法取出重用cell的时候可能是空的
而后来的写法如果取出空的那就自动创建一个新的 register就是告诉它创建个什么样的
iOS6新增了这个方法
dequeueReusableCellWithIdentifier:forIndexPath:
而以前是这个
dequeueReusableCellWithIdentifier:
static NSString *ID = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
}
static NSString *ID = @"cell";
[self.tableView registerClass:[MyCell class] forCellReuseIdentifier:ID];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID forIndexPath:indexPath];
区别在于之前的写法取出重用cell的时候可能是空的
而后来的写法如果取出空的那就自动创建一个新的 register就是告诉它创建个什么样的