我知道这个问题已经被回答过了,但是我对收到的代码审查有点困惑。我建立了一个定制的细胞电话OpeningsTableViewCell
,并为细胞定制了xib。在我 cellForRowAtIndexPath
方法我的代码如下:自定义TableView单元重用代码审查问题
static NSString *reuseIdentifier = @"OpeningsTableViewCell";
OpeningsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
if (cell == nil) {
cell = (OpeningsTableViewCell *)[[[NSBundle mainBundle] loadNibNamed:reuseIdentifier owner:nil
options:nil] objectAtIndex:0];
}
我接到一个同事的代码审查,说:“这将导致细胞创建每次”但我一直做定制单元就这样了,我不能在线查找任何不同的信息。试图看看有什么不对,想什么?
你注册的笔尖文件?检查每次创建单元格的最佳方法是在if语句中放置一个断点 – 2014-11-03 00:00:56
虽然我很久以前搬到故事板,所以可能不记得细节。我唯一会关心的就是'owner:nil';我期望'owner:self'。但除此之外,这似乎是它不会每次都会导致单元格创建,尽管它是旧式代码。您最初将创建足够的单元格来填充视图(加上一对),之后它们将被回收。但请查看“registerNib:forCellReuseIdentifier:”或故事板,以便删除“if(cell == nil){...}”代码部分。 – 2014-11-03 00:44:52
这看起来很好,这是旧式编码。虽然正确的代码审查意见应该是使用'dequeueReusableCellWithIdentifier:forIndexPath:';) – GoodSp33d 2014-11-03 04:35:42