我更新了Xcode,从那以后我遇到了数据库的问题。 代码:
override func numberOfSections(in tableView: UITableView) -> Int {
// return the number of sections
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
// return the number of rows
return leadItems.count
}
func cellForRow(at indexPath: IndexPath) -> UITableViewCell?
{
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! LeadsTableViewCell
// Configure the cell...
cell.user_name_label.text = leadItems[indexPath.row].user_name
cell.school_name_label.text = leadItems[indexPath.row].school_name
return cell
}
我得到的错误是:
由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'UITableView(; layer =; contentOffset:{0,-64}; contentSize:{375,65802}>)无法从其dataSource获取单元格( )
答案 0 :(得分:1)
将此添加到您的viewDidLoad
方法:
tableView.register(LeadsTableViewCell.self, forCellReuseIdentifier: "Cell")
这假设您的故事板中的tableView中没有原型单元格。如果您有原型单元格,请确保重用标识符为"Cell"
,单元格的自定义类为LeadsTableViewCell
;那么就没有必要注册单元格了。
更新
我刚注意到你的方法名称错了,应该是:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! LeadsTableViewCell
// Configure the cell...
cell.user_name_label.text = leadItems[indexPath.row].user_name
cell.school_name_label.text = leadItems[indexPath.row].school_name
return cell
}
答案 1 :(得分:1)
您的cellForRow方法名称不正确。
替换此行
func cellForRow(at indexPath: IndexPath) -> UITableViewCell?
{
与
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
答案 2 :(得分:0)
为了获取表视图的单元格,必须实现数据源方法,该方法旨在为索引路径的给定行提供表格视图。这种方法是:
tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
由于此方法是必需的方法,因此您不能将其遗漏,否则您将收到错误消息。使用此方法配置您的单元格。