我将 UITableView
作为 subview 添加到 UIViewController
中,但是当我为 UITableView
dataSource 方法设置断点时:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
我发现断点命中了 3 次。这是为什么?
最佳答案
你说的方法是数据源方法,和初始化没有关系。这只是 tableview 调用的一种方法,用于询问表中有多少行。我不太关心 TableView 向数据源询问表中有多少行的次数。
我假设您已经使用界面构建器将您的表格 View 创建为另一个 View 的 subview 。这是你初始化 TableView 的时候。使用界面构建器创建的所有对象都在界面构建器中初始化。然后,Xcode 在编译期间归档这些对象(Apple 称之为冷冻干燥),并在运行时取消归档这些对象。
在取消存档期间,使用界面构建器创建的对象然后连接到它们的导出,布置在屏幕上等。然后是对象执行对它们的委托(delegate)和数据源的调用。这可能会发生不止一次。
希望这对您有所帮助。
关于ios - 一个 UITableView 对象需要初始化 3 次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36786393/