Swift 4 предлагает новый способ получения хешей в зависимости от того, как вы хотите. Просто подпишитесь на Hashable
протокол и внедрите hash(into hasher: inout Hasher)
в своем классе:
class CustomClass:Equatable, Hashable {
var id: Int32 = 0
var name: String?
init() {
}
static func == (lhs: CustomClass, rhs: CustomClass) -> Bool {
return lhs.hashValue == rhs.hashValue
}
// hash value is calculated based on id, name parameters
func hash(into hasher: inout Hasher) {
hasher.combine(id)
hasher.combine(name)
}
}