在经典模式下,从dequeueReusableCellWithIdentifier
返回的cell
始终为非nil
。为什么?我们不应该先分配一些单元,那么我们可以重新使用一些单元?dequeueReusableCellWithIdentifier总是返回非零?
我正在使用自定义单元格,并且它是在故事板中创建的。 (但是,如果我使用了默认的UITableViewCell,现象是一样的 - 返回的单元格始终是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"];
}
+1事实证明这是事实。但是IB将使用哪个构造函数来创建这些单元格?没有调用AlbumListCell的'initWithStyle:reuseIdentifier'。 – pierrotlefou 2012-08-03 02:30:43
- (id)initWithCoder:(NSCoder *)aDecoder将被调用。 aDecoder是UINibDecoder。然后所有信息将从界面文件中检索。 – 2012-08-03 02:53:00