SwiftUI Equatable 与 Hashable 协议

当我们用实例作为 tag 时,可能会出现这样的报错:

1
Instance method 'tag' requires that 'Class' conform to 'Hashable'

当我们对结构体使用 onChang() 的时候,可能会出现这样的报错:

1
Referencing instance method 'onChange(of:initial:_:)' on 'Optional' requires that 'Struct' conform to 'Equatable'

这些问题在使用 SwiftData 的时候不会存在——SwiftData 可以使用等于(==)和非等于(!=)运算符比较等于类型的实例。

原因是:

  1. Swift 自定义结构体和类应该遵循的通用协议
  2. How to conform to the Equatable protocol
  3. Swift Struct doesn’t conform to protocol Equatable?
  4. 在 SwiftData 中使用 CLLocationCoordinate2D 数据类型

SwiftUI Equatable 与 Hashable 协议
https://wonderhoi.com/2024/12/19/SwiftUI-Equatable-与-Hashable-协议/
作者
wonderhoi
发布于
2024年12月19日
许可协议