SwiftUI Image
является непрозрачной структурой, которая не соответствует протоколу Hashable
и не предоставляет никаких свойств, которые можно использовать для пользовательских ha sh, поэтому вы можете либо игнорировать ее в своей модели ha sh (не желательно) или использовать модель таким образом, чтобы некоторая информация об изображении принимала участие в га sh (гораздо предпочтительнее).
Случай а) - игнорирование
struct ChatMessage : Hashable {
func hash(into hasher: inout Hasher) {
hasher.combine(message)
hasher.combine(isMe)
}
var message: String
var isMe: Bool
var avatar: Image
}
Случай б) - включая
struct ChatMessage : Hashable {
var message: String
var isMe: Bool
var avatarName: String // avatar's name included in hash automatically
var avatar: Image { // calculable property not used by hashing
Image(avatarName)
}
}