【发布时间】:2020-12-04 02:26:43
【问题描述】:
我正在尝试从“libraryArray”中删除“songDict”,但它会触发错误。
var libraryArray = UserDefaults.standard.value(forKey: "LibraryArray") as! [Dictionary<String, Any>]
var songDict = Dictionary<String, Any>()
var arr = libraryArray.filter {$0 != songDict}
这是错误。 协议类型'Any'的值不能符合'Equatable';只有结构/枚举/类类型可以符合协议
【问题讨论】:
-
var songDict: Dictionary<String, Any>()不会编译。它应该是 varsongDict: Dictionary<String, Any>(定义 var 及其类型,但没有 init)或var songDict = Dictionary<String, Any>()(使用类型和 init 定义 var) -
不相关但
UserDefaults中有dictionary(forKey。只有当你知道 KVC 是什么并且你真的需要它时,你才应该使用value(forKey。
标签: ios swift userdefaults