使用自定义类时删除行的问题

时间:2016-04-19 17:16:48

标签: ios iphone swift uitableview ios9

我目前正在尝试编写表格行删除(来自Core Data)。我正在使用一个名为“CustomTableViewCell”的自定义类。一切都工作正常,直到我实现了以前的应用程序的片段,基本上只是添加滑动删除功能。我现在收到以下错误:

无法将'UITableViewCell'类型的值转换为预期的参数类型'CustomTableViewCell'

违规代码如下:

func controller(controller: NSFetchedResultsController, didChangeObject anObject: AnyObject, atIndexPath indexPath: NSIndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath?) {
    switch type {
    case .Insert:
        tableView.insertRowsAtIndexPaths([newIndexPath!], withRowAnimation: .Fade)
    case .Delete:
        tableView.deleteRowsAtIndexPaths([indexPath!], withRowAnimation: .Fade)
    case .Update:
        self.configureCell(tableView.cellForRowAtIndexPath(indexPath!)!, withObject: anObject as! NSManagedObject) // THIS IS THE OFFENDING CASE
    case .Move:
        tableView.moveRowAtIndexPath(indexPath!, toIndexPath: newIndexPath!)
    }
}

该方法非常简单:我相信它是Master Detail模板中使用的方法。不同的是自定义类。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

看起来tableView.cellForRowAtIndexPath(indexPath!)正在返回UITableViewCell。在将其传递给方法之前,您可能需要使用as! CustomTableViewCell将其强制转换为自定义类型。