从字典中删除整个元素

时间:2017-11-24 07:53:45

标签: ios swift nsdictionary

我有一本像这样的字典......

"113": SellerApp.Product(name: "aa...

现在,每个值都与tableviewcell相关联。因此,当我删除特定单元格时,应删除与其关联的所有值。因此,如果我删除第一个单元格,则在上面的代码段中,mrp: "520") for (index, dict) in self.appDelegate.myDictionary1.enumerated() { if dict.key == (self.appDelegate.commonArrForselectedItems[indexPath.section].id) { self.appDelegate.myDictionary1.removeValue(forKey: self.appDelegate.commonArrForselectedItems[indexPath.section].id) } } 的所有值都将被删除。

我尝试过这样的事情......

{{1}}

但这似乎删除了id本身,所有剩余的值仍然存在。如何从字典中删除与此id相关的所有值..?

2 个答案:

答案 0 :(得分:0)

@bvt,尝试删除如下代码的值

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    yourArrayName.remove(at: indexPath.row)
}

希望它能解决你的问题。

答案 1 :(得分:0)

假设我们的字典是:

var deck = ["Queen": "Spades", "Jack": "Hearts", "King": "Clubs", "Ace": "Diamonds"]

如果我们想要使用key = "Jack"删除元素,我们需要写一下:

let index = deck.index(forKey: "Jack")
deck.remove(at: index!)

按索引删除:

let index = deck.index(deck.startIndex, offsetBy: 2)
deck.remove(at: index)

但是,您应该记住,词典不是有序的集合。他们没有维持元素的顺序。在我们的示例中,虽然通过查看代码,第二个元素是key = "King"的元素,但是在散列后的顺序更改如下:

["Jack": "Hearts", "Ace": "Diamonds", "Queen": "Spades", "King": "Clubs"]

因此,如果删除第二个元素,则"King" : Clubs的元素不会被"Queen": "Spades"删除。