gpt4 book ai didi

ios - 协议(protocol)类型 'Any' 的值不能符合 'Equatable' Swift

转载 作者:行者123 更新时间:2023-12-01 16:05:11 24 4
gpt4 key购买 nike

我试图从“libraryArray”中删除“songDict”,但它触发了一个错误。

var libraryArray = UserDefaults.standard.value(forKey: "LibraryArray") as! [Dictionary<String, Any>]

var songDict = Dictionary<String, Any>()

var arr = libraryArray.filter {$0 != songDict}

这是错误。协议(protocol)类型“Any”的值不能符合“Equatable”;只有结构/枚举/类类型可以符合协议(protocol)

最佳答案

如错误所述,您不能像那样比较两个字典,因为它们不符合 Equatable 协议(protocol)。最好为数据模型使用结构而不是 Dictionary

struct Library: Equatable {
let id: String
...
}

但如果您不想这样做,您仍然可以通过将其中任何键的值相等来检查与字典的相等性。

    var arr = libraryArray.filter { (dict) -> Bool in
dict["id"] as? String == songDict["id"] as? String
}

关于ios - 协议(protocol)类型 'Any' 的值不能符合 'Equatable' Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63408705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com