【问题标题】:Swift - Remove an array from dictionarySwift - 从字典中删除一个数组
【发布时间】:2019-01-17 22:08:40
【问题描述】:

我试图从字典内的数组中删除一个元素,但是当我从表视图中删除它时,该值并未从字典中删除。我尝试删除数组的方式是否错误?

marker.buttonAction["button actions array"]?.remove(at: indexPath.row)

//Function to remove array from dictionary and tableview.
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {

    if editingStyle == .delete {

        if let marker = markUpPlist.arrayObjects.filter({$0.tagClip == currentSelectedMarker}).first {

            print(marker.buttonAction["button actions array"]?[indexPath.row].action)

                marker.buttonAction["button actions array"]?.remove(at: indexPath.row)
                tableView.beginUpdates()
                tableView.deleteRows(at: [indexPath], with: .automatic)
                tableView.endUpdates()
        }
    }
}

//Variable which stores the dictionary
var buttonAction : [String: [ButtonAction]] = [:]

//ButtonAction array
class ButtonAction: Codable {
var action: String
var array_linked_of_buttons: [[String:String]]

init(action: String, array_linked_of_buttons: [[String:String]]) {
 self.action = action
 self.array_linked_of_buttons = array_linked_of_buttons
  }
}

【问题讨论】:

    标签: arrays swift uitableview dictionary


    【解决方案1】:

    答案是我忘记在删除数据后重新保存数据。代码工作正常,如果这对其他人有帮助,我会留下问题。

    【讨论】:

    • arrayObjects 属于类还是结构?
    • arrayObjects 是一个类
    • 如果你的数据源是markUpPlist.arrayObjects,那么一个类的副本很奇怪
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2019-10-26
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多