无法将类型“ UITableViewCell”的值强制转换为“ SwipeCellKit.SwipeTableViewCell”

时间:2019-01-28 10:30:11

标签: ios swift uitableview

我正在尝试在项目中使用名为SwipeCellKit的容器,该容器中添加了一个名为SwipeTableViewCell的类。到目前为止,我所做的是:

  • 为情节提要创建一个视图控制器。
  • 创建一个UIViewController类。
  • SwipeCellKit导入到Swift文件中。
  • 将视图控制器分配给该类。
  • 将表视图添加到视图控制器。
  • 将委托和数据源从表视图连接到视图控制器。
  • 将原型单元格添加到表视图中,并为其可重复使用的标识符命名为“ cell”。
  • 将单元格类更改为SwipeTableViewCell。
  • 将表视图委托添加到视图控制器。
  • 向我的UIViewController类添加numberOfRowscellForRow函数。

这是cellForRow的实现:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! SwipeTableViewCell;
    return cell;
}

但是我在let cell = ...上遇到了错误,说:

  

无法将类型为“ UITableViewCell”的值转换为“ SwipeCellKit.SwipeTableViewCell”

为什么?以及如何解决这个问题?我想我已经安排好了一切。我错过了什么吗?

6 个答案:

答案 0 :(得分:3)

什么为我解决了问题:

Main.Storyboard 中(或您拥有视图的位置)中,确保要使用可重复使用的“单元格”的任何地方,在右窗格的Identity Inspector中,具有以下内容:

  • 类设置为 SwipeTableViewCell
  • 模块设置为 SwipeCellKit

答案 1 :(得分:2)

您需要创建自己的Cell类作为SwipeTableViewCell的子类,然后需要在ViewController中实现SwipeTableViewCellDelegate协议

并为此行

let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! SwipeTableViewCell

您应该使用属于SwipeTableViewCell子类的类名

示例

let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! MySwipeableCell
cell.delegate = self

答案 2 :(得分:1)

我创建了以下示例

WITH CTE AS 
( 
SELECT TOP 1 DateTime
FROM YourTable
ORDER BY ID
UNION ALL
SELECT DATEADD(YEAR, 1, DateTime)
FROM CTE 
WHERE DateTime<= DATEADD(YEAR, 1, GETDATE())
)
SELECT  LicenseNumber, DateTime, Count(*) AS Rows
FROM CTE
INNER JOIN YourTable
ON YourTable.DateTime BETWEEN CTE.DateTime AND DATEADD(YEAR, 1, CTE.DateTime)
GROUP BY LicenseNumber, DateTime;

将视图的类设置为SwipeTableViewCellSubClass。

这应该对您来说完美。祝你好运

答案 3 :(得分:0)

要修复而不创建自定义类,只需单击您的原型单元:

Select the prototype cell

然后从“身份检查器”中,从“ SwipeCellKit”模块中选择“ SwipeTableViewCell”作为类,如下所示:

Add the class and module

答案 4 :(得分:0)

此错误是由于您在viewDidLoad()ftn()中设置单元格值而引起的。

答案 5 :(得分:0)

enter image description here

在您的主故事板中, 选择原型单元并将类更改为 SwipeTableViewCell 将模块更改为 SwipeCellKit