从2D数组Swift中删除元素

时间:2017-03-04 19:33:34

标签: swift

我有一个应用程序部分,它允许用户将项目添加到某个部分。例如,使用可以将“洗车”添加到星期一部分。我无法使删除功能起作用,因此如果用户偶然添加或已完成项目,用户可以删除该项目。到目前为止,我给了我一个“无法转换类型值”错误或“索引超出范围”错误。我想看看这是否是删除项目的正确方法,或者是否有不同的方式。

 func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)   {
    if editingStyle == UITableViewCellEditingStyle.delete   {
        //list.remove(at: indexPath.row)


        list.remove(at: [[indexPath.row]] as Any as! Int)
        UserDefaults.standard.set(list, forKey: "list")

        tableView.reloadData()
    }
}

1 个答案:

答案 0 :(得分:3)

我不确定您的2D阵列是如何设置的。我假设list是一个"任务数组的数组"其中list中的每个数组代表一周中的某一天。我还假设您的表视图是按部分设置的,例如每天描述一个" Monday部分"每个"任务"是该部分下的一个单元格。在这种情况下,您可以从特定日期删除任务,如下所示

list[indexPath.section].remove(at: indexPath.row)

此外,由于这是在表格视图提交方法中,我非常确定您不需要tableView.reloadData()