Swift hashValue不一致(通常为负)

时间:2019-03-08 05:37:43

标签: swift

我正在尝试在Swift中为hashValue使用String函数。不幸的是,返回的值不一致,通常为负数。这是预期的行为吗?

如何在Swift中为字符串获取一致的Int值?

1 个答案:

答案 0 :(得分:0)

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)
    }
}