3

在下面的经典模式中,返回cellfromdequeueReusableCellWithIdentifier始终是 non nil。为什么?我们不应该先分配一些单元格然后我们可以有一些可以重复使用吗?

我正在使用自定义单元格,它是在情节提要中创建的。(但是,如果我使用了默认的 UITableViewCell ,现象是一样的 - 返回的单元格仍然是 always non-nil)。

环境:Xcode 4.3.3 iOs 5.1

AlbumListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"AlbumCell"];

//cell always non nil --- why??
if(cell == nil){
    cell = [[AlbumListCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"AlbumCell"];

}
4

2 回答 2

6

如果您正在使用情节提要并将 UITableViewCell 的标识符设置为您在情节提要文件中的 dequeueReusableCellWithIdentifier(在您的情况下为“AlbumCell”)中使用的标识符,则 UITableView 将始终为您创建单元格。我想这是故事板的一个功能。如果在情节提要中找不到标识符,则需要手动创建单元格。

于 2012-08-03T02:10:45.887 回答
0

我知道单元格的返回可能为零,您应该检查它。通常情况并非如此,因为您应该根据您提供的标识符为您创建一个单元格。例如,如果您没有正确的标识符并且池是空的,我相信您会得到 nil 并且您可以执行 aloc init 来创建一个新单元格。此外,我应该添加您在 xcode 中创建的原型单元格是创建单元格的原因,这就是为什么它应该以非 nil 开头并且您不必创建一个。

为了更好地回答这个问题,请访问 iTunes 并学习 iPad 和 iPhone 应用程序开发课程 - Paul Hegarty - 斯坦福 CS193p 课程。转到讲座 (25) 9. 表格视图进入 26 分钟。

于 2012-08-03T01:59:18.857 回答