我尝试添加功能,以便用户可以删除表格单元格。但是,此表格单元格使用字典填充,因此我收到错误消息:"无法调用' 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)
}
}
答案 0 :(得分:0)
您需要调用removeValueForKey
方法,因为您使用Int
作为键。
您还需要添加beginUpdates
和endUpdates
方法调用来执行动画。
请参阅以下代码:
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行,对吧?