ios - UITableView numberOfSectionsInTableView 和 numberOfRowsInSection 在初始加载时调用了三次

标签 ios uitableview ios8

我正在制作一个没有任何数据源的 REALLY BASIC UITableView 项目。我只是在第一个也是唯一一个单元格上显示“1”。

我在 numberOfSectionsInTableViewnumberOfRowsInSection 中都返回 1。我还在这两种方法上做一个 NSLog,简单地说明各自方法的名称。

在初始加载时,我得到这个:

SomeShit[27511:936083] number of sections
SomeShit[27511:936083] number of rows in section
SomeShit[27511:936083] number of sections
SomeShit[27511:936083] number of rows in section
SomeShit[27511:936083] number of sections
SomeShit[27511:936083] number of rows in section

为什么这些方法调用三次?如果我错了请纠正我,但这真的很奇怪。我认为他们应该只调用一次,因为两者中的项目数都只有 1。

编辑:

我在 viewDidLoad 中做了什么,

self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];
[self.view addSubview:self.tableView];

self.tableView.dataSource = self;
self.tableView.delegate = self;

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];

最佳答案

委托(delegate)和数据源是为 TableView 实现服务的,方法可能会被多次调用。你不应该关心表格 View 的实现细节,只要确保你的答案是一致的(即你可以在任何时间点正确回答并且答案不会在不调用 reloadData 的情况下改变)。

关于ios - UITableView numberOfSectionsInTableView 和 numberOfRowsInSection 在初始加载时调用了三次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30371414/

相关文章:

ios - 排序日期数组排序升序 swift

ios - [_UIBarItemAppearance setTitleColor:forState:]:无法识别的选择器已发送到实例

ios - NSFetchResultsController 的 NSPredicate

swift - 将数据从 CustomTableView 类发送到其父 View Controller

objective-c - Xcode 6 和 Embedded Frameworks 仅在 iOS8 中支持

swift - 有没有办法在 Swift iOS8 中获取特定 GPS 坐标的时区

objective-c - QuartzCore - 在 iOS8 中崩溃

ios - 创建 iOS 应用程序的工作流程是什么

iPhone + UITableView + 访问特定行的单元格

ios - swift 套接字连接