'User' 型不符合协议'Hashable'


class User: Mappable, CustomStringConvertible, Hashable{
static func == (lhs: WUser, rhs: WUser) -> Bool {
return lhs.name == rhs.name 
}
var name: String?
var email: String?
.
.
}

在何处可映射

protocol Mappable: Codable {
init?(jsonData: Data?)
init?(jsonString: String)
}

但它说,键入"User"不符合协议"Hashable">

请记住,当您的类型符合protocol时,您需要实现该protocol所需的实体(属性、方法(。例如,Hashable具有所需的方法hash(into hasher: inout Hasher),因此您需要实现如下
class WUser: Mappable, CustomStringConvertible, Hashable {
func hash(into hasher: inout Hasher) {
hasher.combine(self.name)
hasher.combine(self.email)
}
required init?(jsonData: Data?) {
}
required init?(jsonString: String) {
}
var description: String {
return self.name ?? ""
}
static func == (lhs: WUser, rhs: WUser) -> Bool {
return lhs.name == rhs.name
}
var name: String?
var email: String?
}

上面的代码没有编译问题,因为我已经实现了每个protocol(即MappableCustomStringConvertibleHashable(的所有要求

相关内容

  • 没有找到相关文章

最新更新