【发布时间】:2013-08-04 14:57:30
【问题描述】:
谁能为我澄清一些事情。 UITableView 的 Apple 文档说
`UITableView` overrides the layoutSubviews method of `UIView` so that it calls reloadData only when you create a new instance of `UITableView` or when you assign a new data source.
我得到以下行为:
在我的viewDidLoad,我有tableView.dataSource = self.
在我的getDataFromDatabase 中,我调用[tableView reloadData]。这似乎工作正常,但我认为正在发生的事情是表正在填充一个空白数组,然后,当 db 调用返回时,它会用一个包含数据的数组重新加载它。
我正在尝试执行以下操作:
在viewDidLoad 中,删除tableView.dataSource = self;,并在getDataFromDatabase 方法中添加它。例如
(void)getDataFromDatabase
{
[getData completionHandler^() // an async db call
{
tableView.dataSource = self;
}];
}
这似乎不起作用。该表未填充。如果我在设置dataSource = self 之后添加[tableView reloadData],它会起作用,但是从文档中,当我设置dataSource = self 时它不应该自动调用reloadData“它仅在您创建@987654335 的新实例时调用reloadData @ 或分配新数据源时。” ?
【问题讨论】:
-
请在从数据库中获取详细信息后检查您的阵列。如果您的查询无法获取记录,那么哪些数据将在表视图中重新加载
-
@Jason 给定的代码有许多拼写错误。也许这只是一个问题。请复制并粘贴编译器能够正确解析的代码。
标签: ios uitableview datasource