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)
}
但是,它说,类型“用户”不符合协议“哈希”
答案 0 :(得分:1)
请记住,当您使类型符合writeFile
时,您需要实现该protocol
的必需实体(属性,方法)。例如,Hashable具有必需的方法protocol
,因此您需要按以下方法实现,
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
,Mappable
,CustomStringConvertible
)的所有要求