UITableview:无法从其数据源获取单元格
Posted
技术标签:
【中文标题】UITableview:无法从其数据源获取单元格【英文标题】:UITableview: failed to obtain a cell from its dataSource 【发布时间】:2016-10-06 17:52:22 【问题描述】:我收到此错误消息:failed to obtain a cell from its dataSource
奇怪的是
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
甚至没有被调用,问题不在于返回的单元格为零。我设置了断点。 cellForRowAt
不会被调用。
numberOfRowsInSection
返回值。
我不知道它是否相关,但现在我不使用UITableViewController
,我只有一个UIViewController
,它是datasource
和delegate
的UITableView
。我希望它不会造成干扰。有什么想法吗?
【问题讨论】:
任何错误 sss? 【参考方案1】:交叉检查以下检查清单:-
这是因为您未能使可重复使用的单元出列。 问题是您的 cellForRowAtIndexPath 函数嵌入在另一个函数中 当您忘记将 UITableViewDataSource 和 UITableViewDelegate 协议添加到ViewController declaration
时。
类DataViewController:UIViewController、UITableViewDataSource、UITableViewDelegate
【讨论】:
对,我忘了协议 这种情况下does not conform to protocol 'UITableViewDataSource'
怎么处理?【参考方案2】:
我猜这是你的问题 - Failed to obtain a cell from its DataSource
你可以看看:https://www.hackingwithswift.com/example-code/uikit/fixing-failed-to-obtain-a-cell-from-its-datasource
试试这样的:
cell = tableView.dequeueReusableCellWithIdentifier(getCellIdentifierForType(cellType))
setDataToCell(cell, item: item)
祝你好运
【讨论】:
【参考方案3】:当您将代码从 swift 旧版本迁移到新版本时,请确保您的 tableview 数据源和委托已更新语法。 例如
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
和
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
无法自动更新到以下:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
【讨论】:
以上是关于UITableview:无法从其数据源获取单元格的主要内容,如果未能解决你的问题,请参考以下文章
使用 Table 加载 UIView 时无法从其 dataSource 中获取单元格
来自 url 的 swift 3 json 无法获取单元格 uitableview