我的类使用协议Equatable
。这个类看起来像这样:
class Item: Equatable {
let item: [[Modifications: String]]
init(item: [[Modifications: String]]) {
self.item = item
}
}
func ==(lhs: Item, rhs: Item) -> Bool {
return lhs.item == rhs.item
}
但是这会给我带来错误(见标题)。属性item
之前是[[String: String]]
,没有问题,我不知道该如何解决。我尝试在谷歌和SO上搜索,但没有运气。枚举只是一个简单的基本枚举:
enum Modifications: Int {
case Add = 1
case Remove = 2
case More = 3
case Less = 4
}
==
函数放在类定义内部,以使其符合Equatable
协议。 - dudeman[[String: String]]
时,没有问题,所以应该能够比较2D字典。@milo526:因为枚举具有原始类型值,所以如果我没错的话,它会自动变成可比较的。@Leo Dabus:是的,我正在尝试想出另一种方法,但如果它是一个字典数组,那将会更容易。 - Henny Lee[[String:String]]
,因为[String:String]
可以桥接到NSDictionary
(再次可比较)。 - Martin R[Modifications: String]
。我猜我仍然可以使用[[String: String]
,但使用“Modifications.description”作为键。不过我希望能够解决这个问题... - Henny Lee