删除用Dictionary填充的表格单元格(Swift)

时间:2015-08-09 19:44:08

标签: swift uitableview

我尝试添加功能,以便用户可以删除表格单元格。但是,此表格单元格使用字典填充,因此我收到错误消息:"无法调用' removeAtIndex'使用{index:Int)类型的参数列表

这是我的代码:

var titles = [Int: String]()


func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

    if editingStyle == UITableViewCellEditingStyle.Delete {
        titles.removeAtIndex(index: indexPath.row)
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
    }
}

1 个答案:

答案 0 :(得分:0)

您需要调用removeValueForKey方法,因为您使用Int作为键。

您还需要添加beginUpdatesendUpdates方法调用来执行动画。

请参阅以下代码:

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

    if editingStyle == UITableViewCellEditingStyle.Delete {
        table.beginUpdates()

        titles.removeValueForKey(index: indexPath.row)
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)

        table.endUpdates()
    }
}

注意:在这种情况下,考虑使用Array而不是Dictionary?你实际上不需要字典,因为它将从第0行编入索引到第1行,对吧?