当我调用tableView函数时,标题出现错误。我的问题是,即使函数是请求的类型,为什么函数也不采用这两个参数?我还是新手,如果答案很明显,请原谅我。
class TableViewController: UITableViewController {
func tableView(_ tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "itemCell") as! UITableViewCell
let name = Array(shopItems.keys) [indexPath.row]
let cost = Array(shopItems.values) [indexPath.row]
cell.textLabel?.text = name + String(cost)
return cell
}
}
当我这样调用函数时:
“ TableViewController.tableView(shopTableView,IndexPath:NSIndexPath)”出现错误:“参数标签'(_ :, IndexPath :)'与任何可用的重载都不匹配”
答案 0 :(得分:0)
尝试使用
let name = shopItems.keys[indexPath.row]
代替
let name = Array(shopItems.keys) [indexPath.row]
如果不是嵌套方法,最好不要使用自动换行。 尝试更改
let cell = tableView.dequeueReusableCell(withIdentifier: "itemCell") as! UITableViewCell
到
guard let cell = tableView.dequeueReusableCell(withIdentifier: "itemCell") as? UITableViewCell else {
return UITableViewCell()
}
编辑:正如@Sh_Khan说的那样替换
func tableView(_ tableView: UITableView, cellForRowAt indexPath: NSIndexPath) -> UITableViewCell {
到
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
答案 1 :(得分:0)
有一种简便快捷的方法来找出正确的超载
cellForRow
。代码完成列表中的第一项是正确的方法。