斯威夫特 - UITableViewCell?不能转换为 UITableViewCell

Posted

技术标签:

【中文标题】斯威夫特 - UITableViewCell?不能转换为 UITableViewCell【英文标题】:Swift - UITableViewCell? is not convertible to UITableViewCell 【发布时间】:2016-02-07 20:26:09 【问题描述】:

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

【问题讨论】:

谈到“旧版本”,您应该在问题中添加您正在使用的版本。 嗨,我正在使用 xcode 7 @vadian 您的“customcell”是否基于自定义 UITableViewCell 派生类? 【参考方案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)

【讨论】:

【参考方案2】:

函数返回 UITableViewCell ,而你返回 UITableViewCell ? 检查细胞类型 如果它的类型为 UITableViewCell? ,你需要返回单元格!

(虽然单元格是可选的,但“!”打开它)

【讨论】:

以上是关于斯威夫特 - UITableViewCell?不能转换为 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章

UITableView - UITableViewCell.Style .subtitle - 如何使 UIImageView 循环? - 斯威夫特 5

在 UITableViewCell 内的 uiCollectionViewCell 中显示 Json。斯威夫特 3

如果 TableViewCell 有大量数据要显示,则在 UITableViewCell 中添加自定义按钮的最佳方法。使用斯威夫特

如何在不滚动 textView 的情况下使 UITableViewCell 的高度扩展以适应 UITextView 的内容并包装文本? (斯威夫特 5)

斯威夫特:没有一个名为

斯威夫特 2:任何对象?不能转换为 NSString