注册细胞重用的调用实际上做了什么?

我并不完全理解注册一个类进行单元重用的内容。 我理解我们如何在单元格上使用重用标识符,我只是不明白在viewDidLoad中调用此方法的内容。 看了一堆文档。 不点击,在这里n00b。 有人可以给我一些关于它的好处的提示吗?

TableViewController.m

- (void)viewDidLoad { [super viewDidLoad]; // Register Class for Cell Reuse Identifier [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier]; } 

你有一个UITableView 。 它有一个数据源,为它提供UITableViewCell 。 为了节省内存和处理器周期,它卸载不再在屏幕上的UITableViewCell并将它们放入重用队列。 当它加载一个新单元时,数据源通常会向UITableView请求来自此重用队列的单元。 如果队列当前为空, UITableView将使用提供的类构造一个新的UITableViewCellreuseIdentifier用于将此特定单元类型队列与同一UITableView另一个单元类型队列区分开。

像这样的东西:

UITableView :“嘿,数据源!给我这个indexPath的单元格。”

Datasource :“好吧。那是一种’foo’类型的细胞。有没有那些你没有使用过的人?”

没有注册课程; 重用之前从数据源返回的单元格

UITableView :“是的,我知道。你走了。”

没有注册课程; 没有细胞可用

UITableView :“没有。嘿,我没有为这种单元注册的类。嗯。这里没有了。”

class级注册; 重用之前从数据源返回的单元格

UITableView :“是的,我知道。你走了。”

class级注册; 没有细胞可用

UITableView :“不。但我有一个为该标识符注册的类。这是一个新实例。”

只有在使用自定义TableViewCells类时才需要注册类如果您使用的是故事板,则还可以在Interface Builder中执行此操作。