我是Swift开发的新手,并且遵循了很多在线教程。这些教程中的大部分是指Xcode上的旧版本,代码导致错误。任何人都可以解释为什么下面的代码产生' UITableViewCell?'是不可转换为UITableViewCella以及如何解决此问题。
我正在使用Xcode 7。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("customcell") as UITableViewCell
cell.textLabel?.text = array[indexPath.item]
return cell
}
答案 0 :(得分:1)
有两种方法
<强> 1)强>
func dequeueReusableCellWithIdentifier(_ identifier: String) -> UITableViewCell?
返回一个可选项,因此你必须打开可选的
let cell = tableView.dequeueReusableCellWithIdentifier("custom cell")!
另一种方法更可取
<强> 2)强>
func dequeueReusableCellWithIdentifier(_ identifier: String,
forIndexPath indexPath: NSIndexPath) -> UITableViewCell
因为它返回一个非可选的
let cell = tableView.dequeueReusableCellWithIdentifier("custom cell", forIndexPath:indexPath)
答案 1 :(得分:0)
当你返回UITableViewCell时,该函数返回UITableViewCell? 检查细胞的类型 如果它的类型为UITableViewCell? ,你需要返回细胞!
(虽然单元格是可选的,&#34;!&#34;解开它)