Swift - UITableViewCell?不能转换为UITableViewCell

时间:2016-02-07 20:26:10

标签: swift uitableview

我是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
}

2 个答案:

答案 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;解开它)